如何装载 .tar.gz 文件、更新它(添加新文件、编辑文件),然后卸载它以使更改反映在原始压缩文件中?
如果没有工具可以对 gzip 压缩的 tar 文件执行此操作,我愿意接受其他压缩格式。
我尝试过 archivemount,但这会以只读模式挂载 .tar.gz 文件。
答案1
默认情况下archivemount
工作在读写模式下,可能挂载的 tar.gz 文件的权限不允许用户更新它。
将“-o debug”添加到安装选项可以帮助了解发生的情况。
答案2
它在 Fedora 20 1上对我来说工作得很好,也许你有一个错误,或者作为姆普罗莫内特建议,存档是只读的:
[root@f20 ~]# tar czf /tmp/ul137194.tar.gz -C / /etc/passwd /etc/group /etc/shells
tar: Removing leading `/' from member names
[root@f20 ~]# mkdir /tmp/ul137194
[root@f20 ~]# archivemount /tmp/ul137194.tar.gz /tmp/ul137194
[root@f20 ~]# find /tmp/ul137194
/tmp/ul137194
/tmp/ul137194/etc
/tmp/ul137194/etc/passwd
/tmp/ul137194/etc/group
/tmp/ul137194/etc/shells
[root@f20 ~]# rm /tmp/ul137194/etc/shells
rm: remove regular file ‘/tmp/ul137194/etc/shells’? y
[root@f20 ~]# echo nogroups > /tmp/ul137194/etc/group
[root@f20 ~]# umount /tmp/ul137194
[root@f20 ~]# tar xzf /tmp/ul137194.tar.gz -C /tmp/ul137194
[root@f20 ~]# find /tmp/ul137194
/tmp/ul137194
/tmp/ul137194/etc
/tmp/ul137194/etc/group
/tmp/ul137194/etc/passwd
[root@f20 ~]# cat /tmp/ul137194/etc/group
nogroups
1 archivemount-0.8.1-2.fc20.x86_64、libarchive-3.1.2-7.fc20.x86_64、fuse-2.9.3-2.fc20.x86_64