Domanda Che comando ho bisogno per decomprimere / estrarre un file .tar.gz?


Ho ricevuto un enorme file .tar.gz da un client che contiene circa 800 mb di file di immagine (quando non compressi). Il ftp della nostra società di hosting è seriamente lento, quindi non è pratico estrarre tutti i file localmente e inviarli via ftp. Sono stato in grado di ftp il file .tar.gz sul nostro sito di hosting, ma quando ho ssh nella mia directory e provo a usare unzip, mi dà questo errore:

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

Quale comando devo usare per estrarre tutti i file in un file .tar.gz?


627
2018-02-08 22:50


origine




risposte:


genere man tar per ulteriori informazioni, ma questo comando dovrebbe fare il trucco:

tar -xvzf community_images.tar.gz

Per spiegare un po 'di più, tar ha raccolto tutti i file in un unico pacchetto, community_images.tar. Il programma gzip applicava la compressione, quindi l'estensione gz. Quindi il comando fa un paio di cose:

  • f: questo deve essere l'ultimo flag del comando e il tar file deve essere immediatamente dopo. Indica a tar il nome e il percorso del file compresso.
  • z: dice a tar di decomprimere l'archivio usando gzip
  • x: tar può raccogliere file o eXtrattali. x fa il secondo.
  • v: fa parlare tar molto. Verbose output mostra tutti i file che vengono estratti.

1058
2018-02-08 22:57



@Shiki ho visto la tua modifica proposta. Non penso che sia un cambiamento appropriato, preferisco il modo in cui ho spiegato questo strumento. io fare pensa il tuo tar -xf il suggerimento sarebbe un'ottima risposta aggiuntiva. - djeikyb
Questa è una delle migliori spiegazioni di milioni di domande formulate allo stesso modo - JohnMerlino
@KasunSiyambalapitiya Per impostazione predefinita, finisce nella cartella corrente. Guarda anche man tar; cercare il -C opzione. O forse controlla l'altra risposta - djeikyb
@nikoss aggiungo il v cambia tutto il tempo perché io piace vedendo l'elenco dei file durante l'estrazione. insegnando questo si prepara anche il lettore per altri comandi tar come tar -tvf foo.tar che visualizza il contenuto dell'archivio senza estrarlo. - djeikyb
Mi ricorda L'articolo di xckd su tar.Devo tornare ogni volta. - mgarey


Se vuoi che i file vengano estratti in una particolare destinazione, puoi aggiungere -C /destination/path/
Assicurati di aver prima creato la directory, in questo caso: ~ / Pictures / Community

Esempio:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

Puoi facilmente memorizzarlo se pensi di raccontare catrame dito del piede X tratto a F ile

gif of process done at terminal

Nota: Ricorda che puoi cercare nelle pagine man con ?+ termine da cercare, e poi n e N per passare all'istanza successiva o precedente del termine che stai cercando.


130
2017-08-20 11:02



non dimenticare C per "cdirectory di hange "! Inoltre, ritengo sia meglio non mischiare le opzioni trattino e non trattino (soprattutto confondendo quando si usa ps). - djeikyb
Perché non è -o come ogni altro comando di sempre? - Jan M.
Amo il tuo suggerimento 'tar to e X tract a F ile' - Nam G VU
1+ per la gif animata - Nick Steele


Ad un certo punto tar è stato aggiornato ad auto-decomprimere. Tutto ciò di cui hai bisogno ora è:

tar xf community_images.tar.gz

La stessa spiegazione vale:

  • f: questo deve essere l'ultimo flag del comando e il tar file deve essere immediatamente dopo. Indica a tar il nome e il percorso del file compresso.
  • x: eXTratta i file.

Notare la mancanza di trattino per i flag di comando. Questo perché la maggior parte delle versioni di tar abilita sia le opzioni di stile di gnu che di bsd (semplicisticamente, gnu richiede un trattino, non bsd).


89
2017-12-31 23:54



C'è qualche documentazione su questo? Ho cercato dappertutto un riferimento a questo, non ho mai usato il flag -z e tutto viene gzip, quindi mi sono preoccupato se non stavo comprimendo i miei tarball, haha. Grazie. - neurosnap
@neurosnap vedere il manuale di gnu e del il manuale di bsd - djeikyb
Probabilmente sarebbe stato meglio modificare la tua risposta originale. - Seth♦
@Seth si sente / sentito abbastanza distinto da essere una risposta separata, specialmente nel contesto della modifica distruttiva che lo ha provocato. Lo ripenserò dopo il lavoro, potrebbe essere un modo più semplice di unire rispetto a quanto pensassi all'inizio. - djeikyb
@EnricoMariaDeAngelis bsd tar almeno dal 2004 e gnu tar almeno dal 2010 hanno supportato la selezione automatica di un decompressore. è possibile che nessuna versione "recente" (questo secolo? 90 +?) di tar richieda manualmente la selezione di un decompressore. - djeikyb


Nel caso in cui non sei in grado di estrarre .tar.gz file usando

tar -xvzf fileName.tar.gz

Prova a estrarre usando

tar xf fileName.tar.gz

4
2018-01-05 06:29



se è un file tar gzip, il primo comando funzionerà sempre. se non funziona, non hai un file tar gzip. quest'ultimo comando è un ottimo consiglio per le persone a cui non importa quale sia stato l'algoritmo di compressione usato nel loro file tar. - djeikyb