Talvez uma variação de toda a questão seria:Existem outras ferramentas de arquivamento além tar
das que preservam as permissões de arquivos do Linux e sinalizadores de usuário/grupo?
Quero criar arquivos de uma árvore de diretórios na minha caixa do Ubuntu. As árvores de diretórios são grandes, uma primeira execução tar cvpzf archive.tgz /home/foo/bar
rendeu um arquivo de 5 GB.
Também quero manter todas as permissões e outros sinalizadores e arquivos especiais.
Estou bem com um arquivo de 5 GB, mas para olhar dentro desse arquivo - já que é um arquivo tar compactado - todos os 5 GB precisam ser descompactados primeiro! (Ou é o que parece ao abri-lo com o visualizador de arquivo - estou feliz em ser corrigido.)
Portanto, preciso de uma maneira de "fazer backup" de um diretório (árvore) preservando todos os atributos e direitos do sistema de arquivos e criando um arquivo com um "índice" que não precise ser descompactado para navegar em seu conteúdo.
Editar: Especificando o que considero um arquivo, depoisA resposta de Whalley:
Um arquivo é um único arquivo ou um (pequeno) conjunto de arquivos que carregacompletoecompletoinformações dentro deste(s) arquivo(s). Ou seja, ele pode residir em qualquer sistema de arquivos (se o tamanho permitir), pode ser gravado em um DVD, você pode split
(após o que o ponto desta questão está realmente perdido - mas ainda assim), ...
Responder1
Você conhece a função t do tar para imprimir o conteúdo do arquivo? Você pode usá-lo em um arquivo compactado gzip como este:
tar ztvf archive.tgz
E imprimirá os arquivos em um formato de lista longa, incluindo carimbos de data e hora e tamanhos. Acontece que se você usar duas opções v ao criar o arquivo, ele listará os arquivos por muito tempo (em vez de simplesmente listá-los) à medida que os adiciona ao arquivo, então você pode fazer algo assim para criar automaticamente um índice enquanto você faz backup de uma só vez:
tar cvvpzf archive.tgz /home/foo/bar > archive.tgz.index
Observe o uso de duas opções v. Muitos outros comandos permitem aumentar a verbosidade desta forma (ssh, por exemplo).
Responder2
Já me deparei com esse problema em várias ocasiões. Aqui está o que eu descobri.
fecho eclair
.zip
os arquivos suportam permissões unix e links simbólicos se criados usando o utilitário zip instalado na maioria dos sistemas Linux. No entanto, não suportatodosas extensões suportadas pelo tar
, como links físicos e atributos estendidos. Mas você pode extrair arquivos de arquivos ZIP sem descompactar primeiro o arquivo inteiro até esse ponto, o que é uma vitória.
SquashFS
Se você está procurando um sistema de arquivos somente leitura compactado e montável, o principal concorrente é atualmenteSquashFS. Mas há um problema... bem, alguns problemas, na verdade. Especificamente:
- SquashFS é relativamente novo e não tem suporte tão amplo quanto ferramentas como
tar
. - Existem dois formatos de disco produzidos por duas versões diferentes da ferramenta que não são compatíveis entre si. Certifique-se de obter o caminho certo.
- Não há driver FUSE - você precisa de suporte no kernel para sua versão do squashfs para montar imagens.
- As ferramentas de suporte (
mksquashfs
eunsquashfs
) são bastante simples e não suportam a ampla gama de opções que você vê notar
. - Não há muita documentação.
Responder3
O principal problema parece ser que
... para olhar dentro daquele arquivo ... todos os 5GB têm que ser descompactados primeiro! (Ou assim aparece ao abri-lo com o visualizador de arquivos...)
É verdade que ele precisa ser descompactado, mas isso não significa que seja necessário “descompactar” todos os arquivos no sistema de arquivos.
Para extrair um único ou vários arquivos, tar
descompactará todo o arquivo, mas descartará tudo, exceto os arquivos listados como argumentos.
De maneira semelhante, listar os nomes dos arquivos com -t
( --list
) precisa descompactar todo o arquivo, mas descarta todo o conteúdo do arquivo.
Para entender porque não há índice no início do arquivo, leve em consideração que tar
ele foi originalmente feito para funcionar com dispositivos de fita magnética; Daí o nome tar
- como arquivador de fita. Em uma fita, você deseja adicionar o próximo arquivo no final, não deseja retroceder até o início para escrever um índice.
Responder4
Você pode querer dar uma olhada no fusecompress, que "fornece um sistema de arquivos Linux montável que compacta seu conteúdo de forma transparente. Os arquivos armazenados neste sistema de arquivos são compactados instantaneamente e o Fuse permite criar uma interface transparente entre arquivos compactados e aplicativos do usuário".
Para o usuário os arquivos armazenados podem ser acessados como se não estivessem compactados.
Mas se você tiver espaço, por que não copiar a árvore de diretórios? Mais simples.
Outra opção é copiar as árvores de diretórios para uma unidade USB. Isso permitiria acesso fácil e daria proteção contra falha no disco.