在不使用 find unix 的情况下循环删除早于 x 天的文件
Remove files older than x days in a loop without using find unix
我试图循环删除早于 x 天的文件,而不必找到它们。
我正在使用此脚本删除所有这些:
for f in /path/tomy/directory/*.rpt
do
# if file, delete it
[ -f "$f" ] && rm "$f"
done
如何将 Mtime 合并到此
您可以创建一个时间戳为 X 天前的临时文件,然后在 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"
一旦您对输出感到满意,请删除 rm
之前的 echo
。
我试图循环删除早于 x 天的文件,而不必找到它们。 我正在使用此脚本删除所有这些:
for f in /path/tomy/directory/*.rpt
do
# if file, delete it
[ -f "$f" ] && rm "$f"
done
如何将 Mtime 合并到此
您可以创建一个时间戳为 X 天前的临时文件,然后在 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"
一旦您对输出感到满意,请删除 rm
之前的 echo
。