Shellscript - 检查文件夹并删除该文件夹中超过一小时的文件

时间:2011-07-06 22:08:02

标签: linux

如何编写一个只删除1个小时以上文件夹的shell脚本?

这是我到目前为止所做的:

find /path/to/folder -mtime +1 -exec rm {}\;

但这有两个问题:
1. +1实际上是一天而不是一小时
2.当我运行脚本时,我收到此错误。 find:-exec:no terminateating“;”或“+”

我打算通过cron运行它,我正在从mac终端测试它。

谢谢,
三通

2 个答案:

答案 0 :(得分:3)

使用-mmin代替-mtime

我会把它重写为:

find /folder -mmin +60 -delete

如果你的发现不支持-delete use:

find /folder -mmin +60 -exec rm {} +

答案 1 :(得分:0)

试试这个脚本

HOUR=`/bin/date +%k`

HOUR=`expr $HOUR - 01`

HOUR=`printf "%02d" $HOUR`

MIN=`/bin/date +%M`

DAY=`/bin/date +%Y%m%d`


touch -t $DAY$HOUR$MIN  /tmp/t.tmp

find /path/to/folder -type f ! -newer /tmp/t.tmp -exec ls -lt {} +

find /path/to/folder -type f ! -newer /tmp/t.tmp -exec ls -lt {} \;