在 UNIX Shell 中查找并删除已存在一小时以上的文件
问:如何使用 shell 脚本或命令找出文件的最后修改时间?如何删除 /home/ftp/incoming/raw/ 目录中所有超过一小时的文件或对其采取任何其他自定义操作?
A.在 UNIX/Linux 操作系统下有很多方法(命令)可以查找文件修改时间。您可以尝试以下任何命令之一:
查找命令(带 -cmin 开关)
$ find /home/ftp/incoming/raw/ -maxdepth 1 -cmin +60 -name FileName
-cmin 选项将打印 FileName 的状态上次更改时间是 n 分钟前。此命令将打印所有超过一小时的文件名。
stat 命令(带 -c 开关)
要查找上次更改的时间(以纪元以来的秒数表示),请输入:
$ stat -c %Z /path/to/file
date 命令(带 -r 开关)
要显示文件的最后修改时间,请输入:
$ date -r /path/to/file
我建议使用 find 命令,因为它具有 -exec 选项,可以对所有匹配的文件执行操作,例如移动或删除文件:
$ find /home/ftp/incoming/raw/ -maxdepth 1 -cmin +60 -name "*" -exec /bin/rm -f {} \;