除了每个前缀的最新n个文件(基于文件日期)之外的所有删除?

时间:2015-10-02 20:23:54

标签: linux bash shell awk

我在我的脚本中运行此命令,它删除了每个文件中除了5个以外的所有文件,但它没有根据日期保留最后5个文件:

ls -rv | awk -F_ '++n[$1]>5' | xargs rm

**下划线是前缀(主机名)和文件名之间的分隔符。

我也尝试了其他一些东西,但它似乎没有做到这一点。

我正在运行它来删除文件夹中除了最后n个文件之外的所有文件,它可以正常工作:

rm -f $(ls -1t -I "*.sh" | tail -n +21)

这适用于所有事情。

我有另一个文件夹,其中包含来自各种设备的备份,这些设备都有主机名前缀。格式为:hostname_config.backup-timestamp。

1 个答案:

答案 0 :(得分:1)

@rici解决了它。转储-rv标志并使用-t创建了我正在寻找的行为。

ls -t | awk -F_ '++n[$1]>5' | xargs rm
相关问题