Answers:
-o
在不同参数之间使用标记。
find ./ -type f \( -iname \*.jpg -o -iname \*.png \)
奇迹般有效。
注意有必须是支架和它的内容之间的空间,否则将无法正常工作。
说明:
type -f
-仅搜索文件(不搜索目录)\(
- type -f
适用于所有参数-o
-逻辑或运算符-iname
- -name
,但匹配项不区分大小写type -f
不扩展,适用于没有括号两个表达式,所以,find ./ -type f -iname \*.jpg -o -type f -iname \*.png
也适用......虽然这是两个字符长:-)
a * b + c
不同于a * (b + c)
您可以结合标准-o
的通过Shadur建议。请注意,-o
其优先级低于并列,因此您可能需要括号。
find . -name '*.jpg' -o -name '*.png'
find . -mtime -7 \( '*.jpg' -o -name '*.png' \) # all .jpg or .png images modified in the past week
在Linux上,您可以使用-regex
合并方式来扩展。默认的regexp语法是Emacs(基本的 regexp 加上一些扩展名,例如\|
用于替代);有一个选项可以切换到扩展的正则表达式。
find -regex '.*\.\(jpg\|png\)'
find -regextype posix-extended -regex '.*\.(jpg|png)'
在FreeBSD,NetBSD和OSX上,您可以-regex
将与结合使用-E
以扩展正则表达式。
find -E . -regex '.*\.(jpg|png)'
-iname
代替-name
—然后您还将捕获image.JPG
和image.PnG
find -name
与 SO上的多个模式匹配的模式