Tar corrompido (pasta resultante menor que o arquivo compactado)

4

Eu tenho um problema com um tarball criado em uma versão do SuSe 10.3 Server.

O arquivo .tar tem um tamanho de 6,5 GB, mas se eu o descompacte no Ubuntu 9.10, a pasta resultante tem apenas um tamanho de 1,5 GB.

comandos usados: tar cvf para empacotamento, tar xvf para descompactar.

Talvez alguém saiba como isso pode ser corrigido, seria ótimo.

Felicidades.

    
por Froggiz 28.01.2010 / 10:00

4 respostas

2

se você tiver links simbólicos ou hardlinks no diretório, o tar pode estar adicionando cada um como um arquivo separado. Quando você descompacta em um sistema de arquivos linux, ele irá restabelecer os links e então tudo ocupará menos espaço.

Tar não é para compactação, apenas para criar um arquivo contendo vários arquivos. É por isso que você costuma encontrá-lo através de gzip ou bzip.

    
por 30.01.2010 / 13:08
0

você pode ter melhores resultados com o cpio, é muito mais adequado para backups maiores e pode ser roteirizado para lidar corretamente com links sym e arquivos especiais.

    
por 17.03.2010 / 17:13
0

Se você tiver muitos arquivos pequenos, poderá executar um bloqueio e sobrecarga de diretório no tar. A informação importante é quão grande era o diretório de origem. tar pode ter espaço vazio em arquivos compactados, não alocando blocos para eles. Experimente a opção --apparent-size para du .

Você poderia tentar comparar a lista de arquivos gerados por tar -tf aos arquivos extraídos. Extraia com tar -xf para ver se você está recebendo algum erro na extração. Tente recriar uma cópia do tar para ver o tamanho dela.

    
por 17.04.2010 / 16:41
0

Sugiro tentar pax . Pelo menos, é assim que é chamado no CentOS. IIRC, ele pode manipular arquivos TAR corrompidos, ignorando os membros do tar inválido. Caso contrário, sugiro que você experimente o módulo tarfile da biblioteca padrão do Python e faça isso de forma programática. Eu fiz algo assim há alguns anos.

    
por 17.04.2010 / 16:57