我有一个文件夹在/ var /备份,其中一个cronjob节省了数据库/文件系统的备份。 它包含一个latest.gz.zip和许多旧的转储它们的名字timestamp.gz.zip的。 该文件夹IST越来越大,我想创建一个bash脚本,执行以下操作:
- 保持latest.gz.zip
- 保持年轻的10个文件
- 删除所有其他文件
不幸的是,我不是一个好bash的编剧,所以我不知道从哪里开始。 谢谢你的帮助。
我有一个文件夹在/ var /备份,其中一个cronjob节省了数据库/文件系统的备份。 它包含一个latest.gz.zip和许多旧的转储它们的名字timestamp.gz.zip的。 该文件夹IST越来越大,我想创建一个bash脚本,执行以下操作:
不幸的是,我不是一个好bash的编剧,所以我不知道从哪里开始。 谢谢你的帮助。
你应该学会使用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
当然,你需要提高很多,这只是给予意见。
在zsh中你可以做大部分与扩张的标志:
files=(*(.Om))
rm $files[1,-9]
小心使用这个命令,你可以查阅一下比赛被用做:
print -rl -- $files[1,-9]