Di quale comando ho bisogno per decomprimere / estrarre un file .tar.gz?

611

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 estraendo tutti i file localmente e inviandoli via ftp isn ' t pratico. 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:

[[email protected] 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.

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

    
posta EmmyS 08.02.2011 - 23:50

4 risposte

1038

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

tar -xvzf community_images.tar.gz

Per spiegare un po 'oltre, 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 f ile deve essere immediatamente dopo. Indica a tar il nome e il percorso del file compresso.
  • z : dice a tar di decomprimere l'archivio usando g z ip
  • x : tar può raccogliere file o e x trattarli. x fa il secondo.
  • v : fa parlare tar molto. V erbose output mostra tutti i file che vengono estratti.
risposta data djeikyb 08.02.2011 - 23:57
125

Se desideri che i file vengano estratti in una determinata 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 consideri che dire tar a e X tracci un F ile

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

    
risposta data JorgeArtware 20.08.2014 - 13:02
88

Ad un certo punto, tar è stato aggiornato alla decompressione automatica. 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 f ile deve essere immediatamente dopo. Indica a tar il nome e il percorso del file compresso.
  • x : e x tratta 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, bsd no).

    
risposta data djeikyb 01.01.2014 - 00:54
4

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
    
risposta data Shravan40 05.01.2017 - 07:29

Leggi altre domande sui tag