Ash*_*air 13 bash find filenames
给定一个嵌套目录,我想列出所有扩展名为.tif, .TIF, .tiff, 的tif 文件.TIFF。
目前我正在使用
find . -type f -iname *.TIF -print ; find . -type f -iname *.TIFF -print;
Run Code Online (Sandbox Code Playgroud)
使用-iname允许我不区分大小写,但它会遍历目录两次以获取带有.tif和 的文件.tiff。有一个更好的方法吗?也许用大括号扩展?
为什么不*.tif*呢?
在某些情况下,我的目录可能有带有.tif.aux.xmltiff扩展名的辅助文件。我想忽略这些。
Ste*_*itt 35
find支持“或”析取,-o:
find . -type f \( -iname \*.tif -o -iname \*.tiff \)
Run Code Online (Sandbox Code Playgroud)
这将列出名称与*.tif或匹配的所有文件*.tiff,忽略大小写。
-print是默认操作,因此无需在此处指定。*, (, 和)被转义,因此它们对 shell 失去意义。
Ora*_*Dog 34
比 using 更短-o,请改用正则表达式
find . -type f -iregex '.*\.tiff?'
Run Code Online (Sandbox Code Playgroud)
大括号扩展不是glob 匹配的一部分,因此不能与-(i)name.