bash 转义并查找命令

bash 转义并查找命令

我试图\从这个命令中删除无聊的 -escaping:

find . \( -name '*.mp3' -o -name '*.jpg' \) -print

用单引号括起来:

find . '( -name *.mp3 -o -name *.jpg )' -print

暗示论点直接指向find而不需要任何扩展。

但输出却不同。

答案1

您还可以使用正则表达式,我认为这可以使它更简洁并且给您更好的控制:

find . -regextype posix-egrep -iregex '.*(pdf|mp3)$'

-type f这将查找以 pdf 或 mp3 结尾的所有文件(或目录,除非您指定)。

答案2

find . -name '*.mp3' -o -name '*.jpg' -print

答案3

find . '( -name *.mp3 -o -name *.jpg )' -print

这将查找名为.( -name *.mp3 -o -name *.jpg ),这可能不是您想要的。

仅对圆括号使用单引号:

find . '(' -name '*.mp3' -o -name '*.jpg' ')' -print

相关内容