cp命令语法难度


1

我已经从发生故障的硬盘中救出了许多文件。它们位于500个子目录中,每个子目录包含500个文件。

我正在尝试将所有文​​件夹中的所有文件复制到新的主题目录(如jpg,mp3等)中

在顶层目录(MikeO)中,我正在使用以下命令:

cp -R * /test1

在MikeO下已经创建了test1的地方

这只是重新创建了整个子目录结构以及test1中的所有文件

cp -R *.jpg /test1 results in:
cp: cannot stat ‘*.jpg’: No such file or directory

谁能指出我正确的方向?

Answers:


1

发出命令的位置中没有名为“ .jpg”的文件您需要使用该文字:“ .jpg”不是“ .JPG”或“ .jPg”或任何其他组合。Windows以这种方式不同:它将看到相同的东西。

在同一目录中执行ls,它将显示该目录的内容。ls *jpg列出所有以结尾的文件*.jpg

请注意,-R表示仅在复制时适用于目录的递归BUT。这并不意味着它将为您提供所有目录中以结尾的文件中的所有文件*.jpg

如果要查找所有以* .jpg结尾的文件并将其复制到/ test1 /,则可以使用:

find . -depth -name '*.jpg' -print | cpio -pmdv /test1/

~将/ test1 / 添加到您的主目录中。

在MikeO下已经创建了test1的地方

你这是什么意思 如果您劲歌“MikeO”主目录:将/在启动/(即根目录)。如果您的意思是/home/MikeO/test/您需要~/test1


cpio:无法创建目录“ / test1”:权限被拒绝cpio:/test1//./recup_dir.1/recup_dir.140/f14847120.jpg:功能打开失败:没有这样的文件或目录^ C tony @ tony-HP-620 :/ media / tony / Seagate Backup Plus驱动器/ MikeO $ ^ C
TonyC 2014年

谢谢林兹温德。我喜欢您的复杂代码-但即使在前面加上“ sudo”也无法使用。我了解您对.jpg的其他评论。仅供参考MikeO是外部USB硬盘上的目录
TonyC 2014年

@TonyC那第一个:用sudo测试。如果您不拥有磁盘,则可能是权限问题;)
Rinzwind 2014年

现在,我可以使您的代码片段的第一部分开始工作了。到-print语句为止,我得到屏幕上列出的所有jpg文件。它落在cpio命令中。我检查了看起来不错的语法,但是执行完整命令后,我得到:cpio:无法创建目录`/ test1':权限被拒绝cpio:/test1//./recup_dir.375/f73577640.jpg:函数打开失败:没有这样的文件或目录
TonyC 2014年

我确实拥有磁盘,并且/ test1存在!
TonyC 2014年

0

您可以使用rsync代替cp命令来复制特定的扩展文件。以下是仅复制.jpg扩展名文件的命令。

rsync -pavr                                                 \
    --include '+ */' --include '*.jpg' --exclude '- *'      \
    /path/to/source/directory  /path/to/destination/directory
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.