为了账号安全,请及时绑定邮箱和手机立即绑定

删除bash中除最新的X文件之外的所有文件

删除bash中除最新的X文件之外的所有文件

互换的青春 2019-07-31 18:25:33
删除bash中除最新的X文件之外的所有文件有一个简单的方法,在一个非常标准的UNIX环境中使用bash运行命令来删除目录中除最新的X文件之外的所有文件吗?为了给出一个具体的例子,想象一下一些cron作业每小时写一个文件(比如一个日志文件或一个tar-up up备份)到一个目录。我想要一种方法来运行另一个cron作业,它将删除该目录中最旧的文件,直到少于5个。而且要清楚,只有一个文件存在,它永远不应该被删除。
查看完整描述

3 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

删除目录中除最新文件的5个(或任何数量)之外的所有文件。

rm `ls -t | awk 'NR>5'`


查看完整回答
反对 回复 2019-07-31
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

(ls -t|head -n 5;ls)|sort|uniq -u|xargs rm

此版本支持带空格的名称:

(ls -t|head -n 5;ls)|sort|uniq -u|sed -e 's,.*,"&",g'|xargs rm


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 584 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信