对目录进行 tar 并最终检查更改

对目录进行 tar 并最终检查更改

有没有办法使用 tar 来打包目录并在称重后检查源数据是否发生变化?

好吧,我想打包一个文件夹。但在打包过程中,文件夹的内容可能会发生变化。我需要一种方法让 tar 检查源文件在创建存档后是否发生了变化。如果是,打包的文件应该被新的源文件覆盖

答案1

如果您只想更新现有文件和较新文件的内容(但不从存档中删除不再位于当前目录中的文件,因为这会导致您在No such file or directory尝试更新存档时出现错误),您可以使用diff@Niels Tolstrup 提到的功能,然后使用--update或简单地-u更新存档内容:

tar -uf tarfile.tar `tar --diff --file tarfile.tar | awk ' { print $1 } ' | cut -d: -f1`

笔记 :Tarupdate会在 tar 文件中产生许多重复的条目,您可以通过这些条目看到它们,tar --list --file tarfile.tar但当您提取文件时这不是问题。

答案2

您可以将目录 rsync 到临时位置,然后继续使用 rsync 检查直到没有变化,最后制作 tar 文件。

相关内容