cp 命令语法难度

cp 命令语法难度

我从一个故障硬盘中拯救了许多文件。它们位于 500 个子目录中,每个子目录中包含 500 个文件。

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

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

cp -R * /test1

其中 test1 已在 MikeO 下创建

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

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

有人能给我指明正确的方向吗?

答案1

没有名为“的文件.jpg”。您需要将该文字视为:“.jpg” 不是“.JPG” 或 “.jPg” 或任何其他组合。Windows 在这方面有所不同:它会将它们视为相同。

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

请注意 -R 表示递归,但仅适用于复制目录。这并不意味着它会获取所有目录中以 结尾的文件*.jpg

如果你想找到所有以 *.jpg 结尾的文件并将它们复制到 /test1/,这样做可行:

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

~如果 /test1/ 位于您的主目录中,则添加一个。

其中 test1 已在 MikeO 下创建

你这是什么意思?如果你指的是“MikeO”主目录:则从/(/即 root) 开始。如果你指的是/home/MikeO/test/,则需要~在 前面加上/test1

答案2

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

rsync -pavr                                                 \
    --include '+ */' --include '*.jpg' --exclude '- *'      \
    /path/to/source/directory  /path/to/destination/directory

相关内容