bash – cp:复制所有子目录中具有特定扩展名的所有文件

前端之家收集整理的这篇文章主要介绍了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可以扩展通配符以包括子目录,并使这种事情很容易。

猜你在找的Bash相关文章