为什么我应该用 find 转义分号?

Poo*_*ard 4 find options

我在 Debian 上使用 bash。我必须写

find -iname "*mp3" -exec cp {}  /media/MP3Player/ \;
Run Code Online (Sandbox Code Playgroud)

转义最后一个分号,否则我会收到错误消息。

Dop*_*oti 11

您必须转义分号,以便您当前的shell 看不到它并将其用作命令分隔符,然后find才能看到它并使用它来终止您发送到的命令-exec

此外,手册确实在相关部分说明:

-exec utility [argument ...] ;

[...]

表达式必须以分号 ( ;)结尾。如果从 shell 调用 find ,如果 shell 将分号视为控制运算符,则可能需要引用分号。

nb 快速搜索我的find手册显示了\;语法示例。