使用shell脚本删除超过30天的文件而不使用find

时间:2015-09-08 17:05:36

标签: linux bash

我一直在寻找答案。

我的托管环境不允许我使用find命令。有没有办法在目录中搜索超过30天的所有文件并删除/ rm它们?任何阅读或例子将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:2)

尝试这样的事情:

touch -d 'now -30 days' reference_file
for f in *; do
    if [ "$f" -ot reference_file ]; then
        rm "$f"
    fi
done

或者touch也在黑名单上?

答案 1 :(得分:1)

要求救援!

如果是单个目录,您可以将格式化的时间戳从ls提供给一个简单的awk脚本来进行过滤

 ls -lt --time-style="+%Y %m %d %H %M %S" | awk '{ts=mktime($6 " " $7 " " $8 " " $9 " " $10 " " $11)} ts<systime()-30*24*60*60'