Möchten Sie diese Frage verbessern? Fügen Sie Details hinzu und klären Sie das Problem, indem Sie diesen Beitrag bearbeiten.
Vor 4 Jahren geschlossen.
Verbessern Sie diese Frage
Wie kann ich eine .tar.gz-Datei mit cat, tar und gzip in einer Befehlszeile dekomprimieren und dearchivieren? Ist das überhaupt möglich?
Akzeptierte Antwort:
Keine Notwendigkeit für cat oder gzip :
$ tar xvzf archive.tar.gz
Die Optionszeichenfolge teilt tar mit zu extrahieren (x ) im ausführlichen Modus (v ) die komprimierte (z ) Archiv nach dem f Flagge.
Unter Verwendung von cat , tar und gzip (was albern ist, tu das nicht ):
$ cat archive.tar.gz | gzip -d -c | tar xvf -
oder
$ gzip -d -c archive.tar.gz | cat | tar xvf -
Bei Angabe von - als Dateiname tar liest das Archiv von der Standardeingabe.
Die letzten beiden Beispiele leiden unter dem, was allgemein als „nutzlose Verwendung von cat“ bezeichnet wird “, da ist das einzige cat tut, ist, Daten in den nächsten Teil der Pipeline zu verschieben.
Eine etwas bessere Version, ohne die cat :
$ gzip -c -d archive.tar.gz | tar xvf -
Dies kann tatsächlich nützlich sein, um zu wissen, wie man es auf einem System macht, auf dem tar weiß nicht, wie man mit komprimierten Archiven umgeht.
Die archaische Optionszeichenfolge, die ich für tar verwendet habe oben, ohne Bindestrich (- ) davor, stammt aus einer Zeit, bevor der Bindestrich allgemein zur Angabe von Befehlszeilenoptionen verwendet wurde. Andere Dienstprogramme, die keine reguläre Optionssyntax verwenden, sind dd und mt , aber während die meisten Implementierungen von tar heute versteht die neueren Strichoptionen, dd normalerweise nicht. Der mt Der Befehl (der Magnetbandoperationen steuert) hat einige Dash-Optionen erhalten (insbesondere unter Linux), aber der einzige nicht optionale Teil der Befehlszeile ist immer noch der Befehl, den Sie auf dem Laufwerk ausführen möchten, z. B. rewind oder eof .