如果在通过zip压缩文件时编辑文件会发生什么?

时间:2013-08-12 16:34:27

标签: zip backup zipfile

我问这个问题,知道在我的Linux机器上运行备份时,我需要多么谨慎地访问和编辑文件。如果我在压缩过程中打开或编辑它们,压缩过程(特别是zip)或文件会发生什么?

更新:我刚刚删除了一个文件。 Zip立即停止处理该文件,并警告我文件的大小已更改。

1 个答案:

答案 0 :(得分:1)

Linux使用建议锁,因此实际上没有任何东西阻止您修改由另一个进程读取/写入的文件。如果您的程序锁定了他们正在处理的文件,则其中一个会抱怨其他程序正在打开该文件。

同时修改文件时经常发生的是数据损坏。 无论如何,这是非常罕见的,因为文件很少被修改。最常见的是删除/截断原始文件,并在其位置添加新文件。 删除文件后,Linux会为新文件分配一个新的inode,因此,旧文件仍可由其先前的inode访问。 当文件被截断时,它应该保持相同的inode(不过我不确定)。无论如何,如果某个其他进程正在访问该文件,它将收到I / O错误,因为它位于X位置,当它尝试读取位置X + 1时会收到错误,因为该文件现在有0长度,X + 1超出范围。通过检查情况,程序可以确定文件的大小已经改变,这意味着它被同时修改。

总而言之,在Linux上,I / O操作的同步是单个进程的责任,可以向操作系统寻求帮助,但是他们不会被迫使用。