Mac Terminal中的复制命令失败,并显示“没有此类文件或目录”

时间:2019-02-18 19:44:10

标签: macos terminal cp

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

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

命令:

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

失败,并显示以下消息:

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

我通过键入cp -R,然后将源文件夹拖到终端窗口,在*.LOB之后添加/并将目标文件夹拖到终端窗口来创建命令。

故障排除:

  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文件夹中。上面的命令仅复制该文件,而不复制任何子文件夹。看来-R开关未完成其工作。我的语法正确吗?

1 个答案:

答案 0 :(得分:0)

尝试一下:

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

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