首页 > 解决方案 > 删除早于当天开始的文件

问题描述

我想使用允许使用 find 命令查找所有早于今天日期的文件的逻辑。

使用以下具有从当前时间开始的 24 小时时间戳:

find /home/test/ -mtime +1

我正在尝试实现一个解决方案,无论它在 cron 中的什么时间执行,它都会检查所有早于一天开始时间 00:00 的文件。我相信这可以使用 epoch 来实现,但很难找到最好的逻辑。

标签: kshaix

解决方案


#!/bin/ksh

touch -t $(date +%Y%m%d0000.00) fence
find /home/test/ ! -newer fence -exec \
  sh -c '
    for f in "$@"; do
      [[ $f -ot fence ]] && printf "%s\n" "$f"
    done
  ' sh {} + \
;
rm fence

为什么find(1)没有-older表达。:-(

UNIX 发现:与 -newer 选项相反的选项是否存在?


推荐阅读