如何使用find和rm命令删除文件?

时间:2015-08-02 07:43:37

标签: bash shell unix

find -mmin -19 -exec rm '{}'\;

它将找到修改后的文件,然后删除它们。 但它给我的错误如下, find:缺少`-exec'

的参数

还尝试了各种组合,如

find -mmin -19 -exec rm '{}';\
find -mmin -19 -exec rm '{}'/;

3 个答案:

答案 0 :(得分:11)

命令与\;

之间需要空格
find -mmin -19 -exec rm {} \;

find已提供-delete选项,因此您无需使用-exec rm ..

find -mmin -19 -delete
  

<强> -delete

     

删除文件;如果删除成功,则为true。如果删除失败,一个   发出错误消息。如果-delete失败,则查找退出状态   非零(当它最终退出时)。自动使用-delete   打开-depth选项。

     

警告:不要忘记将find命令行评估为   表达式,所以把-delete放在第一个会让find尝试删除   一切都低于您指定的起点。测试时   找到您稍后打算使用的命令行   -delete,你应该明确指定-depth,以避免以后出现意外。因为-delete暗示-depth,所以你无能为力   一起使用-prune和-delete。

答案 1 :(得分:5)

你错过了将大括号与分号分开的重要空间。

find -mmin -19 -exec rm '{}' \;

但这样做相同,更容易输入,并且可能执行得更快。

find -mmin -19 -delete

答案 2 :(得分:0)

这是另一种选择。指定我们要删除文件的日期:

find /SYSADMIT/* -type f -not -newermt "AAAA:MM:DD HH:MI:SS" -delete

摘自:https://www.sysadmit.com/2019/08/linux-borrar-ficheros-por-fecha.html