删除使用 archivemount 安装的 tar 中的文件?

删除使用 archivemount 安装的 tar 中的文件?

存档挂载允许 rw-mounting tar 档案。

当我删除文件时会发生什么?它是否真的从 tar 存档中删除?是否设置了删除标志?

如果文件确实被删除,那么我认为操作会非常缓慢,因为整个档案需要重写,至少从文件被删除的地方开始。

答案1

你可以很容易地测试一下

创建一个 tar 文件

tar -cf test.tar this.txt that.txt

获取它的 inode 号,以便稍后进行比较

ls -i test.tar
24903987 test.tar

挂载 test.tar 存档并从中删除文件

archivemount test.tar /mnt/a
rm /mnt/a/that.txt
ls -i test.tar
24903987 test.tar

请注意,文件保留了其原始 inode 编号。让我们卸载 tar 文件并查看会发生什么

umount /mnt/a
ls -i test.tar
24903988 test.tar

索引节点号已更改,因此这是一个新文件。对于大型档案,这可能会非常慢。

答案2

如果我理解的没错,archivemount 在卸载之前实际上不会更新存档文件的内容。卸载时,它会重新创建存档,当然,如果存档文件很大,这会很慢。

相关内容