find -exec 缺少参数

find -exec 缺少参数

我想使用 find 和 -exec 删除某些文件。但不太可能的 bash 告诉我,我“错过”了一些论点。

find . -name *.png -exec rm {} /;

我想念什么?

我尝试重命名某些文件时返回相同的“缺少参数”:

find . -name ic_launcher.png -exec mv {} other_name.png /;

有人能告诉我,bash 错过了什么,以及为什么这个命令不成功吗?

答案1

末尾的分号需要加引号或转义,以便将其传递给 shell,find而不是由 shell 解释。

find . -name ic_launcher.png -exec mv '{}' other_name.png ';'

或者

find . -name ic_launcher.png -exec mv '{}' other_name.png \;

应该做你想做的事。

答案2

使用 Pipe 如下例所示:

寻找 。 -name '垃圾邮件-*' | xargs rm

相关内容