Bash

列出所有副檔名為 .tif、.tiff、.TIF、.TIFF 的文件

  • July 7, 2021

給定一個嵌套目錄,我想列出所有副檔名為.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忽略大小寫的所有文件。

-print是預設操作,因此不需要在此處指定。*, (, 並被)轉義,因此它們對 shell 失去了意義。

比 using 更短-o,使用正則表達式代替

find . -type f -iregex '.*\.tiff?'

大括號擴展不是全域匹配的一部分,因此不能與-(i)name.

引用自:https://unix.stackexchange.com/questions/657060