在不使用find unix的情况下,在循环中删除x天以前的文件

时间:2017-12-14 07:50:27

标签: bash unix aix

我试图在循环中删除超过x天的文件,而不必找到它们。 我正在使用此脚本删除所有这些:

for f in /path/tomy/directory/*.rpt
do
   # if file, delete it
   [ -f "$f" ] && rm "$f"
done

如何在此

中加入Mtime

1 个答案:

答案 0 :(得分:1)

您可以创建一个时间戳为X天的临时文件,然后在Object[] elementData循环内将每个文件的时间戳与该文件进行比较,以决定是否删除它。

for

如果您对输出感到满意,请在n=60 # number of days ref="/tmp/$$.tmp" # temporary filename touch -t $(date -d "-$n days" '+%Y%m%d%H%M.%S') "$ref" for f in /path/tomy/directory/*.rpt; do [[ -f $f && $ref -nt $f ]] && echo rm "$f" done rm "$ref" 之前删除echo