Vuoi migliorare questa domanda? Aggiungi dettagli e chiarisci il problema modificando questo post.
Chiuso 4 anni fa.
Migliora questa domanda
Come posso decomprimere e decomprimere un file .tar.gz usando cat, tar e gzip su una riga di comando? È possibile?
Risposta accettata:
Non c'è bisogno di cat
o gzip
:
$ tar xvzf archive.tar.gz
La stringa dell'opzione dice a tar
estrarre (x
) in modalità dettagliata (v
) il compresso (z
) archivio seguendo il f
bandiera.
Usando tutto cat
, tar
e gzip
(che è sciocco, non farlo ):
$ cat archive.tar.gz | gzip -d -c | tar xvf -
o
$ gzip -d -c archive.tar.gz | cat | tar xvf -
Quando viene fornito -
come nome del file, tar
leggerà l'archivio dallo standard input.
Gli ultimi due esempi soffrono di quello che viene comunemente chiamato "Uso inutile di cat
“, poiché l'unica cosa cat
fa è spostare i dati alla parte successiva della pipeline.
Una versione leggermente migliore, senza il cat
:
$ gzip -c -d archive.tar.gz | tar xvf -
Questa potrebbe effettivamente essere una cosa utile da sapere come fare su un sistema in cui tar
non sa come gestire gli archivi compressi.
La stringa di opzione arcaica che ho usato per tar
sopra, senza trattino (-
) davanti ad esso, proviene da un'epoca prima che il trattino fosse comunemente usato per specificare le opzioni della riga di comando. Altre utilità che non utilizzano la normale sintassi delle opzioni includono dd
e mt
, ma mentre la maggior parte delle implementazioni di tar
oggi capisce le nuove opzioni del trattino, dd
di solito no. Il mt
comando (che controlla le operazioni del nastro magnetico) ha acquisito alcune opzioni di trattino (soprattutto su Linux), ma l'unica parte non opzionale della riga di comando è ancora il comando che vorresti eseguire sull'unità, come rewind
o eof
.