优雅的方式使用unix查找许多文件扩展名和名称

时间:2013-07-11 15:14:10

标签: bash shell ksh

我正在尝试使用find命令搜索不同文件扩展名和文件名的长列表,例如*.pl*.sh*.jar,{{ 1}},FileA ...

我的find命令如下:

FileB

有没有更优雅的方式来做到这一点而不发送垃圾邮件find $dir -name '*.pl' -o -name '*.sh' -o -name ... ?我最终希望拥有一系列这样的文件名和扩展名,并且-o -name查找每个文件名和扩展名,因为这样可以更易于维护和读取。

1 个答案:

答案 0 :(得分:3)

您可以使用-regex更简洁地完成此操作,例如为你的例子:

find -E $dir -regex '.*\.(pl|sh|jar)' -o -regex '.*/File(A|B)'

请注意,Linux查找缺少-E开关 - 如果您正在使用Linux,则必须使用-regextype posix-extended代替-E(感谢@Ansgar指向此出)。