Answers:
--parents
正在复制目录结构,所以您应该摆脱它。
编写,find
执行和输出的方式都放在命令行上,这样cp
就无法区分分隔文件名的空格和文件名内的空格。最好做这样的事情
$ find . -name \*.xls -exec cp {} newDir \;
其中cp
对find
找到的每个文件名都执行,并正确传递了文件名。这是更多信息有关此技术。
除了上述所有方法,您还可以使用zsh并简单地键入
$ cp **/*.xls target_directory
zsh
可以扩展通配符以包含子目录,并使这种事情变得非常容易。
Bash
4.0及更高版本,ksh93
还支持**
。对于bash,shopt -s globstar
请启用它。对于ksh,它是set -G
或set -o globstar
。
find . -name '*.xls' -print0 | xargs -0 cp -t destdir
基于以上所有,我想到了这个版本。这个版本在Mac恢复终端中也对我有用。
find ./ -name '*.xsl' -exec cp -prv '{}' '/path/to/targetDir/' ';'
它将在当前目录中查找,并在所有子目录中递归查找具有xsl扩展名的文件。它将全部复制到目标目录。
cp标志是:
find... exec mv
呢