Tar corrompido (pasta resultante menor que o arquivo compactado)

Tar corrompido (pasta resultante menor que o arquivo compactado)

Tenho um problema com um tarball criado em uma versão do servidor SuSe 10.3.

O arquivo .tar tem um tamanho de 6,5 GB, mas se eu descompactá-lo no Ubuntu 9.10, a pasta resultante terá apenas 1,5 GB.

comandos usados: tar cvfpara embalar, tar xvfpara descompactar.

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

Saúde.

Responder1

se você tiver links simbólicos ou hardlinks no diretório, então tar poderá adicionar cada um deles como um arquivo separado. Quando você o descompacta em um sistema de arquivos Linux, ele restabelece os links e tudo ocupa menos espaço.

Tar não serve para compactação, apenas para criar um arquivo contendo vários arquivos. É por isso que você geralmente o encontra canalizado através do gzip ou bzip.

Responder2

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

Responder3

Se você tiver muitos arquivos pequenos, poderá ocorrer bloqueio e sobrecarga de diretório no tar. A informação importante é o tamanho do diretório de origem. tar pode ter compactado o espaço vazio nos arquivos ao não alocar blocos para eles. Experimente a --apparent-sizeopção de du.

Você pode tentar comparar a lista de arquivos gerados com tar -tfos arquivos extraídos. Extraia com tar -xfpara ver se você está recebendo algum erro na extração. Tente recriar uma cópia do tar para ver quão grande ele é.

Responder4

Eu sugiro tentarpax. Pelo menos é assim que é chamado no CentOS. IIRC, ele pode lidar com arquivos TAR corrompidos, ignorando os membros tar inválidos. Caso contrário, sugiro que você experimente oarquivo tarifáriomódulo da biblioteca padrão Python e faça isso programaticamente. Eu tinha feito algo assim há alguns anos.

informação relacionada