我有一个包含一些普通文件的文件夹。我想按照修改日期对它们进行排序,保留最新的20个条目,并从剩下的内容中删除超过20天的任何内容。
以下是我删除文件的代码> 20天。
#!/bin/bash
cleanup="../some path/"
find $cleanup/*gz -mtime +20 -exec rm {} \;
但是,我不知道如何保留最后修改的20个文件,然后进行删除。请问如何解决?
答案 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