繁体   English   中英

查找具有多个文件扩展名的命令

[英]Find Command with multiple file extensions

我正在浏览许多子目录,找到所有以.JPG .jpg和.png结尾的文件,并将它们复制到一个单独的目录中,但是现在仅找到.JPG

有人可以解释我在做什么错吗?

find /root/TEST/Images -name  '*.png' -o  -name '*.jpg' -o -name '*.JPG' -exec cp -t /root/TEST/CopiedImages {} +

您必须对-o条件进行分组,因为-a ,最后一个-name '*.JPG'-exec之间的隐式AND具有更高的优先级

find /root/TEST/Images \( -name  '*.png' -o  -name '*.jpg' -o -name '*.JPG' \) -exec cp -t /root/TEST/CopiedImages {} +

分组是用括号完成的,但是由于它们的特殊含义是shell,因此必须转义(或用引号引起来)。

与此无关,可以通过将jpgJPG过滤器与不区分大小写的-iname组合使用来缩短整体表达式(如注释中所述):

find /root/TEST/Images \( -name  '*.png' -o  -iname '*.jpg' \) -exec cp -t /root/TEST/CopiedImages {} +

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM