我想使用 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