shell脚本只保留最新的两个tar文件,但删除所有其他tar文件? [复制]
Posted
技术标签:
【中文标题】shell脚本只保留最新的两个tar文件,但删除所有其他tar文件? [复制]【英文标题】:shell script to only keep the latest two tar files, but delete all other tar files? [duplicate] 【发布时间】:2012-09-24 11:27:04 【问题描述】:可能重复:Delete all but the most recent X files in bash
场景如下:
每天会在一个目录下创建两个tar文件,但我只需要最新的两个文件,那么如何每天自动删除其他文件?
我是否可以使用纯 shell 命令编写此脚本,而不是使用 perl、python 或 ruby 等高级语言...
这个问题有点类似于FTP - Only want to keep latest 10 files - delete LRU和how to delete all files except the latest three in a folder
但我的还需要测试 tar 文件是否损坏
如果新的 tar 文件损坏了,我不会保留它,而是保留旧的,那么脚本应该是什么样的?
【问题讨论】:
如何(命令和选项)测试 tar 文件的完整性? 【参考方案1】:显然,这可以使用两遍方法解决。
-
检测并删除损坏的 tar 文件。
如引用问题中所述,删除除最新的 N 个文件之外的所有文件。
第一遍可以用一些东西来执行
for t in *.tar; do
if program_that_checks_tar_file_for_integrity $t; then
: # OK
else
rm $t
fi
done
【讨论】:
以上是关于shell脚本只保留最新的两个tar文件,但删除所有其他tar文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
怎样写shell脚本,定期执行删除centos5.6中Apache的log系统日志文件. 只保留最近2个?
怎样写shell脚本,定期执行删除centos5.6中Apache的log系统日志文件. 只保留最近2个?
shell删除文件夹脚本怎么写?,保留2天内的文件夹,2天以前的是直接删除,每周二、四、六删一次