Frage

PROBLEM: Ich möchte in der Lage sein tar.gz-Dateien in einem einzigen Schritt zu extrahieren. Das macht meine Frage fast identisch mit dieser: Stackoverflow Frage für tar-gz .

Meine Frage ist fast die gleiche, aber nicht die gleiche, weil ich diese 7zip Befehlszeile (oder etwas ähnliches) in einer Fledermaus-Datei auf Windows tun möchte oder Rubin / perl / python-Skript.

FRAGE: Diese scheinbar einfache Aufgabe erweist sich mehr als die erste Erscheinung beteiligt zu sein, wäre es zu sein ausmachen. Hat jemand ein Skript, das diese bereits tut?

War es hilfreich?

Lösung

7z e example.tar.gz  && 7z x example.tar

&& Verwenden Sie zwei Befehle in einem Schritt zu kombinieren. Verwenden 7zip tragbar (Sie werden 7z.exe benötigen und 7z.dll nur)

Andere Tipps

Alte Frage, aber ich war heute mit ihm zu kämpfen, so ist hier meine 2c. Das 7-Zip-Kommandozeilen-Tool „7z.exe“ kann (ich habe v9.22 installiert ist) auf stdout schreiben und lesen von stdin, so dass Sie durch die Verwendung eines Rohres ohne den Zwischen TAR-Datei kann:

7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"

Dabei gilt:

x     = Extract with full paths command
-so   = write to stdout switch
-si   = read from stdin switch
-aoa  = Overwrite all existing files without prompt.
-ttar = Treat the stdin byte stream as a TAR file
-o    = output directory

Sehen Sie die Hilfedatei (7-zip.chm) im Installationsverzeichnis für weitere Informationen über die Befehlszeile Befehle und Schalter.

Wie merkt von @zespri Power wird die Eingabe in den zweiten Verarbeitungspuffer 7z so viel Speicher verbrauchen kann, wenn Ihre tAR-Datei ist groß. das heißt:

& 7z x "somename.tar.gz" -so  | & 7z x -aoa -si -ttar -o"somename"

Eine Umgehung von diese SO beantworten , wenn Sie diese von Powershell tun möchten, ist die Befehle an cmd.exe passieren :

& cmd.exe '/C 7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"'

Mit dem win32 Hafen von Teer .

tar -xvfz filename.tar.gz

Da Sie für 7-zip oder etwas ähnliches, fragte ich ein alternatives Tool, das für Ihren genauen Anwendungsfall geschrieben wurde.

Das tartool Dienstprogramm ist ein freier und Open-Source-Tool, um die .NET SharpZipLib Bibliothek gebaut werden.

Beispiel commmand eine .tar.gz / .tgz zu extrahieren - Datei,

C:\>TarTool.exe D:\sample.tar.gz ./

Disclaimer: Ich bin der Autor dieses Dienstprogramm

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top