.tar.gzファイルをマウントして更新し(新しいファイルを追加し、ファイルを編集)、マウントを解除して変更が元の圧縮ファイルに反映されるようにするにはどうすればよいですか?
Gzip圧縮されたtarファイルに対してこれを行うツールが存在しない場合は、他の圧縮形式を使用できます。
Archivemountを試しましたが、これは.tar.gzファイルを読み取り専用モードでマウントします。
デフォルトでは、archivemount
は読み取り/書き込みモードで機能します。おそらく、マウントされたtar.gzファイルのアクセス許可により、ユーザーはファイルを更新できません。
マウントオプションに「-o debug」を追加すると、何が発生するかを理解するのに役立ちます。
Fedora 20では私にとってはうまくいきます1、おそらくバグがあるか、 mpromonetが提案 のように、アーカイブは読み取り専用です:
[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
1archivemount-0.8.1-2.fc20.x86_64、libarchive-3.1.2-7.fc20.x86_64、Fuse-2.9.3-2.fc20.x86_64