查找问题:无效谓词“-delete”

Kay*_*Kay 3 unix windows-7 bash shell

我尝试运行(unix-shell,win7):

find . -maxdepth 1 -name "*.jpg" -size -50k -delete
Run Code Online (Sandbox Code Playgroud)

并得到错误:

find: invalid predicate '-delete'
Run Code Online (Sandbox Code Playgroud)

任何提示?

sus*_*tus 5

find从您正在运行的 unix shell中找到的版本(来自 Windows)缺少 -delete谓词。

一个可能的选择是-:

find . -maxdepth 1 -name "*.jpg" -size -50k -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)


dou*_*BTV 5

您可能还会发现xargs很有用,不仅在查找和删除操作中,而且在运行命令后您可能希望处理文本的其他操作中。在这种情况下,

find . -maxdepth 1 -name "*.jpg" -size -50k | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

始终确保首先在 xargs 之前使用“echo”检查您的工作(以便您可以在运行之前查看命令的外观)。看起来像:

find . -maxdepth 1 -name "*.jpg" -size -50k | xargs echo rm -f
Run Code Online (Sandbox Code Playgroud)