Monte o arquivo tar compactado e atualize-o

Monte o arquivo tar compactado e atualize-o

Como faço para montar um arquivo .tar.gz, atualizá-lo (adicionar novos arquivos, editar arquivos) e desmontá-lo de forma que as alterações sejam refletidas no arquivo compactado original?

Estou aberto a outros formatos de compactação se não existirem ferramentas para fazer isso para arquivos tar compactados.

Eu tentei archivemount, mas isso monta arquivos .tar.gz no modo somente leitura.

Responder1

Por padrão archivemountfunciona no modo leitura-gravação, provavelmente as permissões do arquivo tar.gz montado não permitem que o usuário o atualize.

Adicionar "-o debug" às opções de montagem pode ajudar a entender o que ocorre.

Responder2

Funciona bem para mim no Fedora 20 1 , talvez você tenha um bug, ou comompromonet sugerido, o arquivo é somente leitura:

[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

informação relacionada