So extrahieren Sie Dateien aus einer .tar.gz- oder .tar.bz2-Datei unter Linux

  • Dave McKay

    @TheGurkha

  • 5. April 2019, 8:00 Uhr EDT
Fatmawati Achmad Zaenuri / .com

Tar-Dateien sind komprimierte Archive. Sie werden häufig auftreten, wenn Sie eine Linux-Distribution wie Ubuntu oder sogar das Terminal unter macOS verwenden. So extrahieren oder entpacken Sie den Inhalt einer TAR-Datei, die auch als Tarball bezeichnet wird.

Was bedeuten .tar.gz und .tar.bz2?

Dateien, die haben eine .tar.gz oder eine .tar.bz2 Erweiterung sind komprimierte Archivdateien. Eine Datei mit nur der Erweiterung .tar ist nicht komprimiert, diese sind jedoch sehr selten.

Der .tar Teil von Die Dateierweiterung steht für Bandarchiv und ist der Grund dafür, dass diese beiden Dateitypen als TAR-Dateien bezeichnet werden. Tar-Dateien stammen aus dem Jahr 1979, als der Befehl tar erstellt wurde, damit Systemadministratoren Dateien auf Band archivieren können. Vierzig Jahre später verwenden wir immer noch den Befehl tar, um TAR-Dateien auf unsere Festplatten zu extrahieren. Jemand irgendwo verwendet wahrscheinlich noch tar mit Band.

Werbung

Die .gz oder Das Erweiterungssuffix .bz2 gibt an, dass das Archiv komprimiert wurde, indem entweder gzip oder bzip2 verwendet wird Komprimierungsalgorithmus. Der Befehl tar funktioniert problemlos mit beiden Dateitypen. Es spielt also keine Rolle, welche Komprimierungsmethode verwendet wurde – und er sollte überall dort verfügbar sein, wo Sie eine Bash-Shell haben. Sie müssen nur die entsprechenden tar Befehlszeilenoptionen verwenden.

Extrahieren von Dateien aus Tar-Dateien

Angenommen, Sie haben zwei Dateien heruntergeladen von Noten. Eine Datei heißt ukulele_songs.tar.gz, die andere heißt guitar_songs.tar.bz2. Diese Dateien befinden sich im Download-Verzeichnis.

Extrahieren wir die Ukulelen-Songs:

tar -xvzf ukulele_songs.tar.gz 

Beim Extrahieren der Dateien werden sie in aufgelistet das Terminalfenster.

Die von uns verwendeten Befehlszeilenoptionen sind:

  • -x: Extrahieren, Abrufen der Dateien aus der TAR-Datei.
  • – v: Ausführlich, listen Sie die Dateien auf, während sie extrahiert werden.
  • -z: Gzip, verwenden Sie gzip, um die TAR-Datei zu dekomprimieren.
  • -f: Datei, der Name des TAR Datei, mit der tar arbeiten soll. Auf diese Option muss der Name der TAR-Datei folgen.

Listen Sie die Dateien im Verzeichnis mit ls auf, und Sie werden sehen, dass a Es wurde ein Verzeichnis namens Ukulele Songs erstellt. Die extrahierten Dateien befinden sich in diesem Verzeichnis. Woher kommt dieses Verzeichnis? Es war in der Datei tar enthalten und wurde zusammen mit den Dateien extrahiert.

Advertisement

Nun extrahieren wir die Gitarrenlieder. Dazu verwenden wir fast genau den gleichen Befehl wie zuvor, jedoch mit einem wichtigen Unterschied. Das Erweiterungssuffix .bz2 gibt an, dass es mit dem Befehl bzip2 komprimiert wurde. Anstatt die Option -z (gzip) zu verwenden, verwenden wir die Option -j (bzip2).

tar -xvjf guitar_songs.tar.bz2

Erneut werden die Dateien beim Extrahieren im Terminal aufgelistet. Um klar zu sein, waren die Befehlszeilenoptionen, die wir mit tar für die Datei .tar.bz2 verwendet haben:

Wenn wir auflisten In den Dateien im Download-Verzeichnis sehen wir, dass ein anderes Verzeichnis namens Guitar Songs erstellt wurde.

Auswählen, wo die Dateien extrahiert werden sollen

Wenn wir die Dateien an einen Speicherort extrahieren möchten Mit Ausnahme des aktuellen Verzeichnisses können wir ein Zielverzeichnis mit der Option -C (angegebenes Verzeichnis) angeben.

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Werbung

In unserem Verzeichnis Documents / Songs sehen wir, dass das Guitar Songs-Verzeichnis erstellt wurde.

Beachten Sie, dass das Zielverzeichnis bereits vorhanden sein muss, tar erstellt es nicht, wenn es nicht vorhanden ist. Wenn Sie ein Verzeichnis erstellen müssen und tar die Dateien in einem Befehl in alles extrahieren müssen, können Sie dies wie folgt tun:

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

Die Option -p (Eltern) bewirkt, dass mkdir alle erforderlichen übergeordneten Verzeichnisse erstellt und das Zielverzeichnis sicherstellt wird erstellt.

Vor dem Extrahieren in Teerdateien schauen

Bisher haben wir nur einen Vertrauenssprung gemacht und die Dateien ungesehen extrahiert. Vielleicht möchten Sie schauen, bevor Sie springen. Sie können den Inhalt einer tar -Datei überprüfen, bevor Sie sie mit der Option -t (Liste) extrahieren.Es ist normalerweise praktisch, die Ausgabe über den Befehl less weiterzuleiten.

tar -tf ukulele_songs.tar.gz | less
Advertisement

Beachten Sie, dass wir die Option -z nicht verwenden müssen, um die Dateien aufzulisten. Wir müssen nur die Option -z hinzufügen, wenn wir Dateien aus einer .tar.gz -Datei extrahieren. Ebenso benötigen wir nicht die Option -j, um die Dateien in einer tar.bz2 -Datei aufzulisten.

Scrollen durch In der Ausgabe sehen wir, dass sich alles in der TAR-Datei in einem Verzeichnis namens Ukulele Songs befindet, und in diesem Verzeichnis befinden sich Dateien und andere Verzeichnisse.

Wir können sehen, dass das Ukulele Songs-Verzeichnis Verzeichnisse enthält, die aufgerufen werden Zufällige Songs, Ramones und Possibles.

Verwenden Sie den folgenden Befehl, um alle Dateien aus einem Verzeichnis in einer TAR-Datei zu extrahieren. Beachten Sie, dass der Pfad in Anführungszeichen gesetzt wird, da der Pfad Leerzeichen enthält.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
Ankündigung

Um eine einzelne Datei zu extrahieren, Geben Sie den Pfad und den Namen der Datei an.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

Sie können eine Auswahl von Dateien mithilfe von Platzhaltern extrahieren, wobei * steht für eine beliebige Zeichenfolge und ? steht für ein einzelnes Zeichen. Für die Verwendung von Platzhaltern muss die Option --wildcards verwendet werden.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

Extrahieren von Dateien ohne Extrahieren von Verzeichnissen

Wenn Sie nicht möchten, dass die Verzeichnisstruktur in der TAR-Datei auf Ihrer Festplatte neu erstellt wird, verwenden Sie die Option --strip-components. Die Option --strip-components erfordert einen numerischen Parameter. Die Zahl gibt an, wie viele Verzeichnisebenen ignoriert werden sollen. Dateien aus den ignorierten Verzeichnissen werden weiterhin extrahiert, aber die Verzeichnisstruktur wird nicht auf Ihrer Festplatte repliziert.

Wenn wir mit unserer Beispiel-TAR-Datei --strip-components=1 angeben, wird die Das oberste Verzeichnis von Ukulele Songs in der TAR-Datei wird nicht auf der Festplatte erstellt. Die Dateien und Verzeichnisse, die in dieses Verzeichnis extrahiert worden wären, werden im Zielverzeichnis extrahiert.

tar -xvzf ukulele_songs.tar.gz --strip-components=1
Ankündigung

Es gibt nur zwei Ebenen der Verzeichnisverschachtelung in unserer Beispiel-TAR-Datei. Wenn wir also --strip-components=2 verwenden, werden alle Dateien im Zielverzeichnis extrahiert und keine anderen Verzeichnisse erstellt.

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Wenn Sie sich die Linux-Manpage ansehen, werden Sie feststellen, dass tar ein guter Kandidat für den Titel „Befehl mit den meisten Befehlszeilenoptionen“ sein muss. Zum Glück müssen wir uns nur eine Handvoll merken, damit wir Dateien aus .tar.gz und tar.bz2 -Dateien mit einem guten Maß an granularer Kontrolle extrahieren können

Dave McKay
Dave McKay benutzte zum ersten Mal Computer, als Lochstapel in Mode war, und er programmiert seitdem Nach über 30 Jahren in der IT-Branche ist er heute ein hauptberuflicher Technologiejournalist. Während seiner Karriere arbeitete er als freiberuflicher Programmierer, Manager eines internationalen Softwareentwicklungsteams, Projektmanager für IT-Services und zuletzt Dave ist ein Linux-Evangelist und Open-Source-Anwalt. Lesen Sie Full Bio „

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.