Bash
列出所有副檔名為 .tif、.tiff、.TIF、.TIFF 的文件
給定一個嵌套目錄,我想列出所有副檔名為
.tif
,.TIF
,.tiff
,的 tif 文件.TIFF
。目前我正在使用
find . -type f -iname *.TIF -print ; find . -type f -iname *.TIFF -print;
Using
-iname
允許我不區分大小寫,但它會通過目錄兩次以獲取帶有.tif
和的文件.tiff
。有一個更好的方法嗎?也許有大括號擴展?為什麼不
*.tif*
呢?在某些情況下,我的目錄可能
.tif.aux.xml
在 tiff 旁邊有帶有副檔名的輔助文件。我想忽略那些。
find
支持“或”析取,-o
:find . -type f \( -iname \*.tif -o -iname \*.tiff \)
這將列出名稱匹配
*.tif
或*.tiff
忽略大小寫的所有文件。
*
,(
, 並被)
轉義,因此它們對 shell 失去了意義。
比 using 更短
-o
,使用正則表達式代替find . -type f -iregex '.*\.tiff?'
大括號擴展不是全域匹配的一部分,因此不能與
-(i)name
.