Archive do sistema de arquivos compactados navegável com atributos completos?

4

Talvez uma variação de toda a questão seja: Existem outras ferramentas de arquivamento além de tar que preservam as permissões de arquivo do Linux e os sinalizadores de usuário / grupo?

Eu quero criar arquivos de uma árvore de diretórios na minha caixa do Ubuntu. As árvores de diretório são grandes, uma primeira execução com tar cvpzf archive.tgz /home/foo/bar gerou um arquivo de 5 GB.

Eu também quero manter todas as permissões e outros sinalizadores e arquivos especiais.

Eu estou bem com um arquivo de 5GB, no entanto, para olhar dentro desse arquivo - já que é um arquivo compactado - todos os 5GB precisam ser descompactados primeiro! (Ou então aparece ao abrir com o visualizador do arquivo - eu estou feliz de ser corrigido.)

Então, eu preciso de uma maneira de "fazer backup" de um diretório (árvore) preservando os atributos completos do sistema de arquivos e da direita e criando um arquivo com um "índice" que não precisa ser descompactado para navegar em seu conteúdo.

Editar: especificando o que eu considero como um arquivo, após Resposta de Whalley :

Um arquivo é um único arquivo ou um (pequeno) conjunto de arquivos que carregam informações completas e completas dentro deste arquivo / s. Isto é, ele pode viver em qualquer sistema de arquivos (tamanho permitido), pode ser gravado em um DVD, você pode split (após o qual o ponto desta questão é realmente perdido - mas ainda assim), ...

    
por Martin 29.10.2010 / 09:18

4 respostas

1

Você conhece a função t de tar para imprimir o conteúdo do arquivo? Você pode usá-lo em um arquivo comprimido gzip como este:

tar ztvf archive.tgz

E imprimirá os arquivos em uma longa lista, como formato, incluindo timestamps e tamanhos. Acontece que se você usar duas opções v ao criar o arquivo, ele listará os arquivos por longo tempo (em vez de apenas listá-los) ao adicioná-los ao arquivo morto, para que você possa fazer algo assim para criar automaticamente um índice enquanto você está fazendo o 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 dessa maneira (ssh por exemplo).

    
por 05.11.2010 / 14:33
3

Eu me deparei com esse problema em várias ocasiões. Aqui está o que eu descobri.

ZIP
.zip arquivos suportam permissões unix e links simbólicos se criados usando o utilitário zip instalado na maioria dos sistemas Linux. No entanto, ele não suporta todas as extensões suportadas pelo tar , como links físicos e atributos estendidos. Mas você pode extrair arquivos de arquivos ZIP sem descompactar todo o arquivo até esse ponto primeiro, então é uma vitória.

SquashFS
Se você estiver procurando por um sistema de arquivos de leitura comprimido e montável, o maior concorrente é atualmente SquashFS . Mas há um problema ... bem, algumas capturas, na verdade. Especificamente:

  • O SquashFS é relativamente novo e não é amplamente suportado como ferramentas como tar .
  • Existem dois formatos no 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 e unsquashfs ) são bastante simples e não oferecem suporte à ampla gama de opções que você vê com tar .
  • Não há muita documentação.
por 18.04.2011 / 02:58
2

O principal problema parece ser que

... to look inside that archive ... the whole 5GB have to be decompressed first! (Or so it appears when opening it with the archive viewer ...)

É verdade que ele precisa ser descompactado, mas isso não significa que é necessário "descompactar" todos os arquivos para o sistema de arquivos.

Para extrair um ou vários arquivos, tar descompactará todo o arquivo, mas descartará qualquer coisa, 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 por que não há um índice no início do arquivamento, leve em consideração que tar foi originalmente criado para funcionar com dispositivos de fita magnética; Daí o nome tar - como o arquivador de fitas. Em uma fita, você quer adicionar o próximo arquivo no final, você não quer voltar ao início para escrever um índice.

    
por 22.10.2014 / 00:33
1

Você pode querer olhar para o fusecompress, que "fornece um sistema de arquivos Linux montável que comprime seu conteúdo de forma transparente. Os arquivos armazenados neste sistema de arquivos são compactados e o Fuse permite criar uma interface transparente entre arquivos compactados e aplicativos de 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 apenas copiar a árvore de diretórios? Mais simples.

Outra opção é copiar as árvores de diretórios para uma unidade USB. Isso permitiria um acesso fácil e protegeria de uma falha de disco.

    
por 31.10.2010 / 21:22