So extrahieren Sie eine einzelne Datei aus TBZ

So extrahieren Sie eine einzelne Datei aus TBZ

Ich habe das folgende archivierte Verzeichnis:

itunes20140618.tbz

Ich möchte daraus eine einzelne Datei mit dem Namen extrahieren:

itunes20140618/video

Wie würde ich das machen?

Bisher mache ich

$ bzip2 -d /tmp/itunes20140618.tbz 

Aber es scheint, als würde ein Tar-Verzeichnis mit allem erstellt. Wie kann ich nur die einzelne Videodatei extrahieren?

Wenn ich derzeit eine Datei über Tar entpacke, dauert es etwa 1 Minute und bleibt dann weitere 20 Minuten hängen, während das Lesen des Tar-Archivs abgeschlossen ist. Irgendwelche Ideen, wie man das verbessern kann?

Antwort1

tar -xvjf itunes20140618.tbz itunes20140618/video

Das sollte in diesem Fall genügen. Wenn Sie jedoch weitere Hilfe benötigen, gehen Sie wie folgt vor:

info tar

Um bestimmte Archivmitglieder zu extrahieren, geben Sie deren exakte Mitgliedsnamen als Argumente an, wie von ausgegeben --list (-t). Wenn Sie versehentlich eine der Dateien gelöscht haben, die Sie collection.tar zuvor im Archiv abgelegt hatten (z. B. blues), können Sie sie aus dem Archiv extrahieren, ohne die Struktur des Archivs zu ändern. Ihr Inhalt ist identisch mit dem der Originaldatei, bluesdie Sie gelöscht haben.

Stellen Sie zunächst sicher, dass Sie sich im practiceVerzeichnis befinden, und listen Sie die Dateien im Verzeichnis auf. Löschen Sie nun die Datei bluesund listen Sie die Dateien im Verzeichnis erneut auf.

Sie können das Mitglied nun blueswie folgt aus der Archivdatei „collection.tar“ extrahieren:

 $ tar --extract --file=collection.tar blues

Wenn Sie die Dateien im Verzeichnis erneut auflisten, sehen Sie, dass die Datei bluesmit ihren ursprünglichen Berechtigungen, Datenänderungszeiten und dem Eigentümer wiederhergestellt wurde. (Diese Parameter sind identisch mit denen, die die Datei hatte, als Sie sie ursprünglich im Archiv abgelegt haben. Alle Änderungen, die Sie möglicherweise vor dem Löschen der Datei aus dem Dateisystem vorgenommen haben, wurden jedoch _nicht_ am Archivmitglied vorgenommen.) Die Archivdatei collection.tarist dieselbe wie vor dem Entpacken blues. Sie können dies bestätigen, indem tar Sie ausführen --list (-t).

Antwort2

Ein Archiv wie ein .zip, .raroder .7zbesteht aus vielen gebündelten und komprimierten Dateien. Ein .tarArchiv besteht aus vielen gebündelten Dateien, das Tar-Format beinhaltet jedoch keine Komprimierung. Eine .gz, .bz2oder .xz-Datei ist eine einzelne komprimierte Datei. Ein .tar.gz, .tar.bz2, usw. ist ein komprimiertes Archiv; .tbzist ein Suffix, das gelegentlich anstelle von verwendet wird .tar.bz2, genau wie .tgzmanchmal how anstelle von verwendet wird .tar.gz.

bzip2 -d /tmp/itunes20140618.tbzdekomprimiert die Datei. Sie erhalten das unkomprimierte Tar-Archiv. bzip2erstellt kein Tar: es dekomprimiert, was ihm übergeben wird, und da es ein komprimiertes Tar erhält, ist die Ausgabe ein unkomprimiertes Tar. Sie können die resultierende Datei mit entpacken tar -xf /tmp/itunes20140618.tar. Um nur eine Datei zu extrahieren, ist das tar -xf /tmp/itunes20140618.tar itunes20140618/video.

Relativ aktuelle Versionen von tar unter Linux, FreeBSD, MINIX3 und OSX erkennen komprimierte Archive automatisch, sodass Sie tar zunächst aufrufen können, ohne sich Gedanken über die für das Archiv verwendete Komprimierung machen zu müssen:

tar xf itunes20140618.tbz itunes20140618/video

Ältere Versionen von Tar sowie viele heutige Systeme wie OpenBSD, Solaris und Linux mit BusyBox können zumindest bzip2im Hintergrund aufrufen, auch wenn Sie es ihnen mit der -jOption explizit mitteilen müssen.

tar -xjf itunes20140618.tbz itunes20140618/video

verwandte Informationen