删除与壳牌最旧的文件(Deleting oldest files with shell)

2019-09-22 07:02发布

我有一个文件夹在/ var /备份,其中一个cronjob节省了数据库/文件系统的备份。 它包含一个latest.gz.zip和许多旧的转储它们的名字timestamp.gz.zip的。 该文件夹IST越来越大,我想创建一个bash脚本,执行以下操作:

  • 保持latest.gz.zip
  • 保持年轻的10个文件
  • 删除所有其他文件

不幸的是,我不是一个好bash的编剧,所以我不知道从哪里开始。 谢谢你的帮助。

Answer 1:

你应该学会使用find命令,可能与xargs ,类似的东西

 find /var/backup -type f -name 'foo' -mtime -20 -delete

或者,如果你find没有-delete

 find /var/backup -type f -name 'foo' -mtime -20 -print0 | xargs -0 rm -f

当然,你需要提高很多,这只是给予意见。



Answer 2:

在zsh中你可以做大部分与扩张的标志:

files=(*(.Om))
rm $files[1,-9]

小心使用这个命令,你可以查阅一下比赛被用做:

print -rl -- $files[1,-9]


文章来源: Deleting oldest files with shell
标签: shell