每天只用更改的文件更新 tar.gz

Wil*_*com 4 linux tar archive compression

可能的重复:
将文件添加/更新到现有的 tar.gz 存档?

我有一些我希望每天更新的游戏文件,他们创建了该文件夹的 tar.gz,但不是每天重新制作所有文件的完整 tar.gz,我试图找到一种方法来检查它更改/添加/删除文件的目录并更新存档以节省时间和 CPU,而不是每天从头开始重新创建存档。我怎样才能做到这一点?

到目前为止,我一直在尝试使用 --listed-incremented ,但没有运气。

qua*_*nta 11

您必须先创建0 级备份

$ tar --create --verbose --listed-incremental ./game.snar --gzip \
    --file game_`date +%F`.tar.gz game/
Run Code Online (Sandbox Code Playgroud)

第二天,此命令仅压缩自创建以来更改的文件./game.snar

$ tar --create --verbose --listed-incremental ./game.snar --gzip \
    --file game_`date +%F`.tar.gz game/
Run Code Online (Sandbox Code Playgroud)

此存档称为 1级备份

当您要恢复时,将所有存档文件放入一个文件夹中,并使用该--incremental选项按创建顺序提取每个文件,如下所示:

$ for t in game_2011-10-2*.tar.gz; \
    do tar --verbose --extract --incremental --gzip --file $t; done
Run Code Online (Sandbox Code Playgroud)

  • 请不要为无法运行的软件做广告。GNU tar 可以进行增量备份,但这对您没有帮助,因为在两个增量之间存在重大差异的情况下,GNU tar 无法进行增量恢复。相关bug曾于2004年、2011年、2016年和2018年报告过,但无济于事。 (2认同)