Existe uma maneira rápida de obter o último arquivo em um TAR grande?

3

Vamos supor que eu tenha um arquivo tar de vários gigabytes, mas também sei que o último arquivo gravado no arquivo é algo importante que eu preciso. Como os arquivos tar são anexados sequencialmente, existe uma maneira de fazer o tar ler no arquivo a partir do final para encontrar esse arquivo, em vez de começar do início e ler mais de gigabytes de dados irrelevantes?

    
por andyortlieb 15.09.2011 / 18:20

2 respostas

7

Não, infelizmente não existe. De Wikipedia

Another weakness of the tar format compared to other archive formats is that there is no centralized location for the information about the contents of the file (a "table of contents" of sorts). So to list the names of the files that are in the archive, one must read through the entire archive and look for places where files start. Also, to extract one small file from the archive, instead of being able to lookup the offset in a table and go directly to that location, like other archive formats, with tar, one has to read through the entire archive, looking for the place where the desired file starts. For large tar archives, this causes a big performance penalty, making tar archives unsuitable for situations that often require random access of individual files.

    
por 15.09.2011 / 18:27
2

Podemos procurar eficientemente o último arquivo no arquivo, se o tar é criado no armazenamento que é procurado, ou seja, em discos rígidos e não em fita. use a opção -n ou --seek do GNU tar. (veja esta página de opções do tar GNU ), por exemplo, arquivo que é armazenado por último com o nome last_file.txt, você pode usar o seguinte comando

tar -nxvf <your_archive> last_file.txt

Que simplesmente extrairia last_file.txt. porque o formato tar contém o tamanho de cada arquivo em um cabeçalho, é possível pular o arquivo inteiro eficientemente usando a chamada do sistema de busca, (veja formato de arquivo tar )

Para listar apenas todos os arquivos eficientemente em um arquivo grande, use

tar -ntvf <your_archive>
    
por 03.04.2018 / 20:26

Tags