【问题标题】:Command to delete all files older than a given time and log what it does命令删除所有早于给定时间的文件并记录它的作用
【发布时间】:2013-12-18 19:02:04
【问题描述】:

我已经为此苦苦挣扎了一段时间,经过大量搜索后,我决定是时候向专家寻求帮助了。

我试图删除目录/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 脚本调用)。

提前感谢您的帮助。

【问题讨论】:

    标签: linux bash unix find exec


    【解决方案1】:

    find 正在抱怨,因为它最后缺少 \;+

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

    sh 子外壳并不真正需要:

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

    【讨论】:

    • 谢谢。我选择了没有子外壳的版本。我最初只是开始使用一个来解决有关“模糊重定向”的错误消息,但它一直是 + 缺失的!再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2013-05-16
    • 1970-01-01
    • 2021-08-02
    • 2017-05-27
    • 1970-01-01
    相关资源
    最近更新 更多