# find /home/shantanu -name 'my_stops*' | xargs ls -lt | head -2
上面提到的命令将列出最新的2个文件,其中包含my_stops的名称。我想保留这两个文件。但我想删除当前目录中以“my_stops”开头的所有其他文件。
答案 0 :(得分:14)
如果您定期创建备份,则使用find的-atime选项可能很有用,因此只能选择早于最后两个备份的文件进行删除。
对于每日备份,您可以使用
$ find /home/shantanu -atime +2 -name 'my_stops*' -exec rm {} \;
但是另一种表达方式(除了-atime)可能更适合你。
在示例中,我使用+2表示超过2天。
答案 1 :(得分:4)
这是一个非递归解决方案:
ls -t my_stops* | awk 'NR>2 {system("rm \"" $0 "\"")}'
说明:
答案 2 :(得分:1)
请参阅here
(ls -t|head -n 2;ls)|sort|uniq -u|xargs rm
答案 3 :(得分:1)
这将显示你从第二行前进;)
find / home / shantanu -name'my_stops *'| xargs ls -lt |尾巴-n +2
请记住,find是递归的;)
答案 4 :(得分:1)
没有递归方法:
find /home/folder/ -maxdepth 1 -name "*.jpg" -mtime +2