这应该很简单,但是我得到的结果很奇怪。
我有一个文件夹,其中包含约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
之后添加/
并将目标文件夹拖到终端窗口来创建命令。
故障排除:
将*.LOB
替换为*.*
会产生相同的错误。
cp -R /Users/Steve/Desktop/Hardscapes/ /Users/Steve/Desktop/Temp
将整个Hardscapes
文件夹及其所有子文件夹和文件复制到Temp
。
感谢您的帮助和建议。
编辑:文件夹Hardscapes
仅包含其他文件夹。如果我使用这些文件夹之一作为源运行上面的命令,则内容将忠实复制。文件夹Hardscapes
本身不包含.LOB
个文件-它们仅在子文件夹中。
所以也许就是问题所在,cp
找不到与Hardscapes/*.LOB
相对应的文件?但是我认为-R
开关应该告诉它浏览所有子文件夹。
接下来,我将名为Test.LOB
的文件放在Hardscapes
文件夹中。上面的命令仅复制该文件,而不复制任何子文件夹。看来-R
开关未完成其工作。我的语法正确吗?
答案 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
根本不匹配任何文件。