Nenhuma das outras respostas aqui menciona todas as advertências da implementação tar
padrão no Solaris. Uma dessas ressalvas é que ele não suporta compactação por si só. Uma extração simples pode ser obtida através de:
gzip -dc < /path/to/the.tar.gz | tar xvf -
Além disso, se você criou o arquivo por algo como
tar cvf - /path/to/directory | gzip -c > the.tar.gz
você verá que extrair este arquivo sempre substitui os arquivos originais. Isso ocorre porque o Solaris tar
não tira a entrada /
das entradas do archive após a extração e não tem meios de remover os componentes do caminho. Então, se você quiser extrair uma cópia do conteúdo em segundo , você terá que criar o arquivo com um comando ligeiramente diferente:
tar cvf - -C /path/to/directory . | gzip -c > the.tar.gz
ou
(cd /path/to/directory && tar cvf - .) | gzip -c > the.tar.gz
Na implementação do Solaris, a opção -C
não se aplica à extração. Supondo que o arquivo foi criado usando um desses dois métodos ou similar, uma variante desse segundo formulário permitirá a extração para um local arbitrário:
gzip -dc < the.tar.gz | (cd /path/to/extraction/point && tar xvf -)
Se você tiver o GNU tar
installed ( /usr/sfw/bin/gtar
), ele suportará a compactação diretamente, bem como a remoção de caminhos. Neste caso, as opções usuais, como
/usr/sfw/bin/gtar xvzf the.tar.gz
será suficiente.