0

可能重复:
删除 bash 中除最近的 X 文件之外的所有文件

场景如下:

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

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

这个问题有点类似于FTP - 只想保留最新的 10 个文件 - 删除 LRU以及如何删除文件夹中除最新三个文件之外的所有文件

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

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

4

1 回答 1

0

显然,这可以使用两遍方法解决。

  1. 检测并删除损坏的 tar 文件。
  2. 如引用的问题中所述,删除除最新的 N 个文件之外的所有文件。

第一遍可以用一些东西来执行

for t in *.tar; do
    if program_that_checks_tar_file_for_integrity $t; then
        : # OK
    else
        rm $t
    fi
done
于 2012-09-24T12:34:38.193 回答