Mac 终端中的复制命令失败并显示 "No such file or directory"

Copy command in Mac Terminal fails with "No such file or directory"

这应该很简单,但我得到了奇怪的结果。

我有一个包含约 4000 个文件的子文件夹的文件夹。我正在尝试仅将特定文件类型的文件复制到另一个文件夹,同时保留子文件夹层次结构。

命令:

cp -R /Users/Steve/Desktop/Hardscapes/*.LOB /Users/Steve/Desktop/Temp

失败并显示消息:

"/Users/Steve/Desktop/Hardscapes/*.LOB: No such file or directory".

我通过键入 cp -R 创建命令,然后将源文件夹拖到终端 window,在 / 之后添加 *.LOB,然后将目标文件夹拖到航站楼 window.

疑难解答:

  1. *.* 替换 *.LOB 会产生同样的错误。

  2. cp -R /Users/Steve/Desktop/Hardscapes/ /Users/Steve/Desktop/Temp 将整个 Hardscapes 文件夹及其所有子文件夹和文件复制到 Temp

感谢您的帮助和建议。

编辑: 文件夹 Hardscapes 仅包含其他文件夹。如果我 运行 上面的命令使用这些文件夹之一作为源,则内容会被忠实地复制。文件夹 Hardscapes 本身不包含 .LOB 个文件 - 它们只在子文件夹中。

所以也许这就是问题所在,cp 找不到与 Hardscapes/*.LOB 对应的任何文件?但我认为 -R 开关应该告诉它查看所有子文件夹。

接下来,我将一个名为 Test.LOB 的文件放入 Hardscapes 文件夹中。上面的命令仅复制 该文件和 none 的子文件夹。 -R 开关似乎没有发挥作用。我的语法正确吗?

试试这个:

rsync -a --prune-empty-dirs --include '*/' --include '*.LOB' --exclude '*' /Users/Steve/Desktop/Hardscapes/ /Users/Steve/Desktop/Temp

正如您已经提到的,目录 Hardscapes 本身不包含 .LOB 文件。这就是为什么您的掩码 /Users/Steve/Desktop/Hardscapes/*.LOB 结果根本不匹配任何文件。