tar 增量选项不添加新文件

tar 增量选项不添加新文件

在增量备份中,tar似乎无法添加新文件:

$ tar -cvzf test.tar.gz -g test.snar a.txt
a.txt
$ tar -cvzf test2.tar.gz -g test.snar a.txt b.txt

第二条命令没有返回任何内容,存档为空。但是,如果我指定目录而不是文件,它就可以工作。这里我遗漏了什么吗?

答案1

第一个 tar命令包含快照文件a.txt。第二个 tar 命令中,快照不知道b.txta.txt没有更改,因此增量存档为空。

如果增量存档位于目录级别,它将检测到更改(b.txt),因为 b.txt 存在于目录的层次结构中。

如果快照文件存在,确定哪些文件被修改了。

GNU Tar 参考增量备份

选项“--listed-incremental”指示 tar 对增量存档进行操作,并将附加元数据存储在独立文件(称为快照文件)中。此文件的目的是帮助确定自上次备份以来哪些文件已被更改、添加或删除,以便下一次增量备份将仅包含已修改的文件。快照文件的名称作为选项的参数给出:

答案2

您是否考虑过使用 tar 的“–listed-incremental”选项?它将允许您逐步添加特定文件夹,并有助于确保您仅压缩自上次使用 --list-incremental 选项将其添加到 tar 以来发生更改的文件。

更通用的选项是简单地使用 -a 或 append 选项来附加新文件,将文件放在存档的末尾。

如果这是备份情况,我建议您将 rsync 视为功能更丰富的选项,但同样,这完全取决于您尝试使用备份程序执行的操作。

相关内容