问题说明了一切:我有一个目录,我想用“zip -rv”压缩它,但文件一直在变化(postgres 数据库基础备份)。这会破坏 zip 吗?还是会像 rsync 一样继续发出警告?
当 Tar 发现压缩过程中更改的文件时,它会失败。我在生成文件更改时对目录运行了一些测试 zip,没有看到任何错误,但这可能只是因为我很幸运,zip 已经压缩/尚未获取更改的文件。此时我的 B 计划是将更改的目录 rsync 到另一个文件夹,然后将静态位置压缩,但这将占用两倍的空间,如果可能的话,我想避免这种情况。如果 zip 无法处理压缩过程中的文件更改,是否有可以处理的实用程序?
操作系统是 centos 6,仅供参考。
答案1
它根本不处理它们。zip 在开始创建档案时会读取整个目录树。
- 如果在压缩操作期间删除了文件,您将收到一条警告消息。
- 如果在 zip 操作期间创建了文件,则该文件不会存在于存档中如果它是在已读取的目录中创建的。如果文件是在 zip 读取该目录的内容之前创建的,则它将位于存档中。
- 如果在压缩操作期间更改了文件,则其内容将与添加到存档时的内容相同。文件在添加到存档时会被读取。