使用shell脚本对文件进行排序,然后删除旧文件

时间:2015-04-02 20:51:25

标签: linux bash shell

我有一个包含一些普通文件的文件夹。我想按照修改日期对它们进行排序,保留最新的20个条目,并从剩下的内容中删除超过20天的任何内容。

以下是我删除文件的代码> 20天。

#!/bin/bash
cleanup="../some path/"

find $cleanup/*gz -mtime +20 -exec rm {} \;

但是,我不知道如何保留最后修改的20个文件,然后进行删除。请问如何解决?

1 个答案:

答案 0 :(得分:1)

您可以使用

过滤20个文件名
awk 'NR > 20' 

完整命令:

find ...... | awk 'NR > 20' | xargs -r  rm

例如

seq 30 | xargs -i echo 'file{}' | awk 'NR > 20' | xargs  -r rm