extração de alcatrão também descompacta automaticamente

5

Quando eu corro

tar -cvzf archive.tgz file1 file2 ; rm file1 file2

normalmente cria um tarball comprimido, mas como é possível que

tar -xvf archive.tgz

me devolve os arquivos descompactados? Eu sempre pensei que o sinalizador -z seria necessário.

    
por Brikowski 06.01.2016 / 12:10

3 respostas

16

Sua implementação de tar , provavelmente a GNU one, está detectando o arquivo transmitido como um parâmetro que está sendo compactado.

As implementações tar mais utilizadas atualmente, GNU tar e busybox , estão procurando os primeiros bytes do arquivo, também conhecido como número mágico, para descobrir se ele está compactado e o algoritmo de compactação a ser usado.

As implementações de tar encontradas nos Unixes comerciais baseadas no código AT & T original não suportam o sinal -z em primeiro lugar. Uma exceção notável é o Solaris 11 tar , no qual essa extensão foi adicionada, incluindo a capacidade de detectar o formato do arquivo.

    
por 06.01.2016 / 12:12
0

A Star introduziu detecção automatizada de compressão e descompressão automática aprox. 20 anos atrás.

Atualmente, algumas outras implementações de alcatrão, como gtar, copiaram a ideia.

BTW: star entende os números mágicos no fluxo compactado para detectar o método correto de descompressão. Observe também que o gtar foi reportado como falha quando um arquivo compactado é lido de stdin em vez de um arquivo nomeado.

    
por 06.01.2016 / 14:38
0

A opção -z não é necessária em duas implementações bem conhecidas de tar: tar GNU e tar BSD (também conhecido como libarchive ) . Detectar o algoritmo de compressão necessário é trivial, feito inspecionando os primeiros bytes do arquivo de entrada.

O fato de você estar usando uma ou outra dessas implementações depende em grande parte de qual sistema operacional você está usando: sistemas baseados em Linux ou sistemas BSD (incluindo OSX).

Eu resumi detalhes de quando esses recursos foram introduzidos na minha página sobre tar versus portabilidade .

    
por 07.01.2016 / 11:08

Tags