如何删除unix中的特定文件

时间:2016-12-05 03:09:58

标签: bash shell unix unix-timestamp

我们在/wslogs/instance_name目录下的服务器实例上有一些文件,这些文件都是每天创建的日志文件。

我正在寻找一个脚本来根据日期自动删除这些文件。 所以我们要说删除超过10天的文件。问题是文件名不是纯粹的日期格式,而是

hostname_%m%d%Y_access.log and hostname_%m%d%Y_error.log

例如,ra70960708_12042016_access.logra70960708_12042016_error.log(其中ra70960708是服务器名称或主机名)。

我尝试使用rm命令,但如果说我必须删除那些距离当前日期已过10天的文件,则无法弄清楚如何在此处指定文件。

非常感谢任何帮助。

干杯,

阿什利

1 个答案:

答案 0 :(得分:3)

忘记姓名,改为使用修改时间:

下面将列出当前目录中与glob:hostname_*_error.log匹配的文件以及上次修改时间+10天前的文件:

find . -maxdepth 1 -mindepth 1 \
  -type f -name 'hostname_*_error.log' \
  -mtime +10

然后可以使用-delete删除它们。

.是要搜索的目录。