簡體   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