前端之家收集整理的这篇文章主要介绍了
bash – cp:复制所有子目录中具有特定扩展名的所有文件,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在unix下,我想将所有子目录中所有具有特定扩展名(所有excel
文件)的
文件复制到另一个目录。我有以下命令:
cp --parents `find -name \*.xls*` /target_directory/
此命令的问题是:
>它也复制目录结构,我只想要的文件(所以所有文件应该在/ target_directory /)
>它不会复制文件中的文件名中的空格(这是相当多的)
任何解决这些问题的解决方案?非常感谢!!
–parents正在复制目录结构,所以你应该摆脱它。
你写这个的方式,find执行,输出被放到命令行,使cp不能区分分隔文件名的空格和文件名中的空格。最好做一些事情
$ find . -name \*.xls -exec cp {} newDir \;
其中对找到查找的每个文件名执行cp,并正确传递文件名。 Here’s more info上这种技术。
而不是上面的所有,你可以使用zsh,只需键入
$ cp **/*.xls target_directory
zsh可以扩展通配符以包括子目录,并使这种事情很容易。