删除名称中包含日期的旧文件

时间:2017-03-01 15:25:56

标签: bash command-line scripting

我的文件名为

filename_201702200800.tar.bz2
filename_201702201800.tar.bz2

等等

我希望删除5天及以上的文件。 文件中的日期格式为%Y%m%d%H%M。

2 个答案:

答案 0 :(得分:2)

由于创建时间对应于名称,只需使用find

find /path/to/files -type f -ctime +5 -exec rm  {} +

来自man页面:

  

-exec command {} +

     

-exec操作的此变体在所选文件上运行指定的命令,但命令行是由   在最后添加每个选定的文件名;总人数   命令的调用将远远少于数量   匹配的文件命令行的构建方式与此类似   xargs构建其命令行。只有一个“{}”实例   在命令中允许。该命令在启动时执行   。目录

答案 1 :(得分:0)

没有足够的回复评论。

你能使用文件的mtime吗?

find /path/to/files -type f -mtime +5 -delete

否则,您可以使用以下方式计算要查找的日期:

date -d "5 days ago" +%Y%m%d%H%M