Não há necessidade de cat
ou gzip
:
$ tar xvzf archive.tar.gz
A cadeia de opções informa tar
para extrair ( x
) no modo detalhado ( v
) o arquivo compactado ( z
) após o f
flag.
Usando todos os cat
, tar
e gzip
(que é bobagem, não faça isso ):
$ cat archive.tar.gz | gzip -d -c | tar xvf -
ou
$ gzip -d -c archive.tar.gz | cat | tar xvf -
Quando for dado -
como o nome do arquivo, tar
lerá o arquivo da entrada padrão.
Os dois últimos exemplos sofrem com o que é comumente chamado de "Uso inútil de cat
", já que a única coisa que o cat
faz é embaralhar os dados na próxima parte do pipeline.
Uma versão ligeiramente melhor, sem o cat
:
$ gzip -c -d archive.tar.gz | tar xvf -
Isso pode realmente ser uma coisa útil para saber como fazer em um sistema no qual tar
não sabe como lidar com arquivos compactados.
A string de opção arcaica que usei para tar
acima, sem o traço ( -
) na frente dela, vem de um tempo antes que o traço fosse comumente usado para especificar opções de linha de comando. Outros utilitários que não usam a sintaxe de opção regular incluem dd
e mt
, mas enquanto a maioria das implementações de tar
today compreende as opções de traço mais recentes, dd
normalmente não. O comando mt
(que controla operações de fita magnética) adquiriu algumas opções de traço (especialmente no Linux), mas a única parte não opcional da linha de comando ainda é o comando que você gostaria de executar na unidade, como como rewind
ou eof
.