Vraag Welke opdracht heb ik nodig om een ​​.tar.gz-bestand uit te pakken / uitpakken?


Ik heb een enorm .tar.gz-bestand ontvangen van een client die ongeveer 800 MB aan afbeeldingsbestanden bevat (indien niet gecomprimeerd.) De ftp van ons hostingbedrijf is serieus traag, dus het lokaal uitpakken en verzenden van bestanden via ftp is niet praktisch. Ik kon het .tar.gz-bestand naar onze hostingsite ftpten, maar toen ik mijn directory binnenstapte en unzip probeerde te gebruiken, gaf het me de volgende foutmelding:

[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.

Welke opdracht moet ik gebruiken om alle bestanden in een .tar.gz-bestand uit te pakken?


627
2018-02-08 22:50


oorsprong




antwoorden:


Type man tar voor meer informatie, maar deze opdracht zou de slag moeten slaan:

tar -xvzf community_images.tar.gz

Om een ​​beetje verder uit te leggen, verzamelde tar alle bestanden in één pakket, community_images.tar. Het gzip-programma paste compressie toe, vandaar de gz-extensie. Dus het commando doet een paar dingen:

  • f: dit moet de laatste vlag van het commando zijn en de teer file moet onmiddellijk daarna zijn. Het vertelt tar de naam en het pad van het gecomprimeerde bestand.
  • z: vertelt tar om het archief met g te decomprimerenzik p
  • x: tar kan bestanden verzamelen of eXtrakteer ze. x doet de laatste.
  • v: maakt teer veel praten. Verbose output toont u alle bestanden die worden uitgepakt.

1058
2018-02-08 22:57



@Shiki Ik zag je voorgestelde bewerking. Ik denk niet dat het een juiste verandering is, ik geef de voorkeur aan de manier waarop ik deze tool heb uitgelegd. ik do denk aan je tar -xf suggestie zou een geweldig aanvullend antwoord zijn. - djeikyb
Dit is een van de betere verklaringen van de miljoenen gelijkmatig geformuleerde vragen - JohnMerlino
@KasunSiyambalapitiya Standaard belandt het in de huidige map. Zie ook man tar; zoek naar de -C keuze. Of bekijk het andere antwoord - djeikyb
@nikoss ik voeg het toe v schakel de hele tijd omdat ik graag willen zien van de bestandslijst tijdens extractie. Door dit te leren bereidt de lezer ook andere tar-commando's voor tar -tvf foo.tar die de inhoud van het archief toont zonder uitpakken. - djeikyb
Doet me denken aan xckd's artikel over tar.Ik moet elke keer terugkomen. - mgarey


Als u wilt dat de bestanden worden geëxtraheerd naar een bepaalde bestemming die u kunt toevoegen -C /destination/path/
Zorg ervoor dat u eerst de directory maakt, in dit geval: ~ / Pictures / Community

Voorbeeld:

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

Je kunt het gemakkelijk onthouden als je overweegt te vertellen teer teen X tract a F ile

gif of process done at terminal

Notitie: Vergeet niet dat je binnenin manpagina's kunt zoeken met ?+ term om te zoeken naar, en dan n en N om naar de volgende of vorige instantie te gaan van de term die u zoekt.


130
2017-08-20 11:02



vergeet het niet C voor "change directory "! Ik vind ook dat het beter is om afbreekstreepjes en niet-koppeltekens te combineren (vooral verwarrend bij gebruik ps). - djeikyb
Waarom is het niet -zoals elk ander commando ooit? - Jan M.
Ik hou van je hint 'tar to e X tract a F ile' - Nam G VU
1+ voor het geanimeerde GIF - Nick Steele


Op een gegeven moment tar is geüpgraded naar automatisch decomprimeren. Het enige wat je nu nodig hebt is:

tar xf community_images.tar.gz

Dezelfde uitleg is van toepassing:

  • f: dit moet de laatste vlag van het commando zijn en de teer file moet onmiddellijk daarna zijn. Het vertelt tar de naam en het pad van het gecomprimeerde bestand.
  • x: eXtracteer de bestanden.

Let op het ontbreken van koppelteken voor de opdrachtvlaggen. Dit komt omdat de meeste versies van tar zowel gnu- als bsd-stijlopties toestaan ​​(simplistisch gezien vereist GNU een koppelteken, bsd niet).


89
2017-12-31 23:54



Is hier documentatie over? Ik heb overal gezocht naar een verwijzing naar dit, ik gebruik nooit de vlag -z en alles wordt gzipped, dus ik ben ongerust geweest als ik mijn tarballs helemaal niet heb gecomprimeerd, haha. Bedankt. - neurosnap
@neurosnap zie de GNU-handleiding en van de Bsd's handleiding - djeikyb
Waarschijnlijk zou het beter zijn geweest om je oorspronkelijke antwoord te bewerken. - Seth♦
@Seth het voelt / voelt duidelijk genoeg om een ​​afzonderlijk antwoord te zijn, vooral in de context van de destructieve bewerking die het heeft veroorzaakt. Ik zal het na het werk opnieuw bekijken, misschien een eenvoudiger manier om samen te voegen dan ik oorspronkelijk dacht. - djeikyb
@EnricoMariaDeAngelis bsd tar sinds ten minste 2004 en gnu tar sinds ten minste 2010 hebben ondersteuning geboden voor het automatisch selecteren van een decompressor. het is mogelijk dat geen "recente" (deze eeuw? jaren negentig +?) versie van tar handmatig selecteren van een decompressor vereist. - djeikyb


In het geval dat u niet kunt extraheren .tar.gz bestand gebruiken

tar -xvzf fileName.tar.gz

Probeer uitpakken met

tar xf fileName.tar.gz

4
2018-01-05 06:29



als het een gzipped-tar-bestand is, zal het eerste commando altijd werken. als het niet werkt, heb je geen gzipped tar-bestand. de laatste opdracht is een goede aanbeveling voor mensen die er niet om geven welk compressiealgoritme werd gebruikt in hun tar-bestand. - djeikyb