用于删除超过给定时间的所有文件并记录其功能的命令

时间:2013-12-18 19:02:04

标签: linux bash unix find exec

我一直在努力解决这个问题,经过大量的搜索后决定是时候寻求专家的帮助了。

我正在尝试删除目录/filestodelete中的所有文件并在文件/something/deletions.log中记下它们,到目前为止我已经提出:

find /filestodelete -mtime +93 -exec sh -c 'rm -rfv {}' > "/something/deletions.log"

当我尝试运行时,收到的错误是:

find: missing argument to `-exec'

(我把/something/deletions.log放在引号中,因为它实际上可能有空格 - 它由另一个bash脚本调用。)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

发现是抱怨,因为它最后缺少\;+

find /filestodelete -mtime +93 -exec sh -c 'rm -rfv {}' > "/something/deletions.log" \;

sh子shell没有实际需要:

find /filestodelete -mtime +93 -exec rm -rfv {} + > /something/deletions.log