我正在尝试使用find
命令搜索不同文件扩展名和文件名的长列表,例如*.pl
,*.sh
,*.jar
,{{ 1}},FileA
...
我的find命令如下:
FileB
有没有更优雅的方式来做到这一点而不发送垃圾邮件find $dir -name '*.pl' -o -name '*.sh' -o -name ...
?我最终希望拥有一系列这样的文件名和扩展名,并且-o -name
查找每个文件名和扩展名,因为这样可以更易于维护和读取。
答案 0 :(得分:3)
您可以使用-regex
更简洁地完成此操作,例如为你的例子:
find -E $dir -regex '.*\.(pl|sh|jar)' -o -regex '.*/File(A|B)'
请注意,Linux查找缺少-E
开关 - 如果您正在使用Linux,则必须使用-regextype posix-extended
代替-E
(感谢@Ansgar指向此出)。