shell脚本只保留最新的两个tar文件,但删除所有其他tar文件?

时间:2012-09-24 11:27:04

标签: shell backup tar sysadmin

  

可能重复:
  Delete all but the most recent X files in bash

场景如下:

每天会在一个目录中创建两个tar文件,但我只需要最新的两个文件,那么如何每天自动删除其他文件?

我是否可以使用纯shell命令编写此脚本,而不是使用高级语言(如perl,python或ruby)编写此脚本...

此问题与FTP - Only want to keep latest 10 files - delete LRUhow to delete all files except the latest three in a folder

有点类似

但我的还需要测试tar文件是否已损坏

如果较新的tar文件损坏了,我不会保留它,但保留较旧的tar文件,那么脚本应该是什么样的?

1 个答案:

答案 0 :(得分:0)

显然,这可以通过两遍方法解决。

  1. 检测并删除损坏的tar文件。
  2. 删除除引用问题中所述的最新N个文件以外的所有文件。
  3. 第一遍可以用

    进行
    for t in *.tar; do
        if program_that_checks_tar_file_for_integrity $t; then
            : # OK
        else
            rm $t
        fi
    done