如何避免使用cp命令复制特定的文件格式

时间:2019-05-16 19:50:48

标签: bash shell

我在ma bash脚本中使用cp命令

cp /source/* /destination 

我只是想避免将所有.txt文件从源复制到目标。

非常感谢

3 个答案:

答案 0 :(得分:6)

如果启用了扩展球状搜索,则可以匹配除txt文件之外的所有文件:

cp /source/!(*.txt) /destination

*.txt与所有txt文件匹配。 !(...)告诉它匹配除...部分中的内容以外的所有内容。

答案 1 :(得分:1)

我不知道您是否可以复制执行此操作,但是rsync命令具有此功能。试试

rsync -av / source / * / destination-排除“ * txt”。

有关更多详细信息和示例,请参见https://www.howtogeek.com/168009/how-to-exclude-files-from-rsync/

答案 2 :(得分:0)

尝试

find . -maxdepth 1 -type f \( ! -iname "*.txt" \) -print0 | xargs -0 cp {} /destination

使用-print0和-0处理名称中可能有空格的文件。