当我在使用 tar 归档的目录中创建文件时会发生什么?

当我在使用 tar 归档的目录中创建文件时会发生什么?

我有一个大目录(80GB),我想将其压缩到存档中。当在该目录中创建新文件并进行去皮时,会发生什么情况?新文件会包含在创建的存档中吗?

我的操作系统:Ubuntu 18.04.4。

tar --version:(GNU 焦油)1.29

答案1

我刚刚跑过tar (GNU tar) 1.32strace它显示了这种行为:

  1. tar在从该目录中读取第一个文件之前,先读取该目录中的整个文件列表。
  2. 仅当之前处理的目录内容已完全写入 tar 文件后,才能读取另一个目录(子目录或附加参数)中的文件。

因此,您问题的答案取决于创建新文件的路径。如果其父级的处理已经开始,则它不会成为存档的一部分,否则会成为存档的一部分。

也许快照对于您的情况很有用。或者(如果不可能)读取所有非目录路径并将find它们提供给tar.这两种方法都会阻止添加在tar.

相关内容