在bash中循环播放超过2小时的文件

时间:2014-07-16 18:49:46

标签: bash shell ftp

我有一个小脚本,我将循环通过ftp,如果它找到一个比2小时更早的文件将执行命令,这个循环还有另一个条件,我不需要帮助。我只需要帮助找到超过n分钟的文件。这就是我所拥有的

for file in $(ls); do

if [ $file is older than 2 hours ] && [ another condition   ]; then
        #execute a command
fi

done

2 个答案:

答案 0 :(得分:1)

我不知道你的其他条件是什么,但是在一定年龄内找到文件的一种非常简单的方法是

find . -mmin +120 | xargs your_command

答案 1 :(得分:0)

一个简单的解决方法:

find $(ls) -amin +120 -exec some command here \;

我用这个来处理FTP服务器上超过几分钟的文件,所以我不会读取部分文件。

你可以找到"对于其他选项,由于amin的访问时间超过了n分钟,因此还有超过n分钟前修改的mmin,以及许多很多其他选项。

注意:要在-exec中引用找到的文件路径,请替换为{}

例如,如果要附加.found:

的文件
find /tmp/targets/ -amin 120 -exec mv {} {}.found \;

这将重命名/ tmp / targets /中的所有文件,并在末尾附加.found。注意\;用于转义-exec命令。如果你只是用;然后-exec不会被关闭,你会收到一个错误。你可以用多个命令串起来;在使用\;

关闭逃生之前