【问题标题】:find -mtime files older than 1 hour [duplicate]查找 -mtime 超过 1 小时的文件 [重复]
【发布时间】:2010-10-07 08:02:12
【问题描述】:

我有这个命令,我目前每 24 小时运行一次。

find /var/www/html/audio -daystart -maxdepth 1 -mtime +1 -type f -name "*.mp3" -exec rm -f {} \;

我想每 1 小时运行一次并删除超过 1 小时的文件。这是正确的:

find /var/www/html/audio -daystart -maxdepth 1 -mtime **+0.04** -type f -name "*.mp3" -exec rm -f {} \;

我不确定我使用的是十进制数吗??

感谢您的更正。

编辑

或者我可以只使用 -mmin 60 吗?这是正确的吗?

编辑2

我试过你的测试,你建议的好东西。我得到一个空的结果。我希望删除所有 OLDER 超过 60 分钟的文件!我怎样才能做到这一点??我的命令真的会这样做吗?

【问题讨论】:

  • 如果您使用的是 GNU find(而且您很可能是),您还可以传递 -delete 标志而不是 -exec rm 业务。我认为这更清楚地表达了意图。

标签: bash shell command-line cron


【解决方案1】:

-mmin 呢?

find /var/www/html/audio -daystart -maxdepth 1 -mmin +59 -type f -name "*.mp3" \
    -exec rm -f {} \;

从人找到:

-min n 文件的数据最后一次修改是在 n 分钟前。

另外,请务必先对此进行测试!

... -exec echo rm -f '{}' \; ^^^^ 添加“回声”,这样您就可以看到将要获取的命令 运行而不是先实际尝试它们。

【讨论】:

  • 不会 -mmin 60 只查找 60 分钟前修改的文件吗?我认为它需要是 -mmin +59 之类的。
  • 我根据 Otis 的 cmets 进行了更新。不错的收获!
  • 谢谢。 :) 我很好奇修改是否需要 60 分钟或更长时间,或者 59m 1s 是否会跳闸。我不确定 Abs 所做的事情是否需要那么精确。
  • 我会在 54 分 12 秒后通知你 ;-) Otis++ 在你的随机帖子中
  • 而不是 -exec rm -f {} \;你可以简单地使用 -delete
猜你喜欢
  • 1970-01-01
  • 2022-01-28
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-08-23
  • 2013-10-04
相关资源
最近更新 更多