Befehl zum 'gzip' eines Ordners?


66

Ich bin neu in der Mac-Eingabeaufforderung. Wie erstelle ich einen gzip eines Ordners in Mac OS X? Ein paar Leute sagten mir, wenn Sie einen gzip eines Ordners erstellen möchten, sollten Sie ihn zuerst "tarieren" und dann "gzipen". Ist das richtig?


1
Dies ist keine Programmierfrage? Ihr Beitrag ist mit einem Tag versehen, objective-caber Sie fragen nach der Befehlszeile.
Rakuo15

Antworten:


130

Tar ist das Archivierungswerkzeug und gzip ist das Komprimierungswerkzeug. Um ein vollständiges Verzeichnis zu komprimieren, müssen Sie es zunächst in einer einzelnen Datei archivieren. Das ist der Job von Teer. und dann komprimieren Sie die archivierte Datei. Sie können beide Aufgaben in einem einzigen tar-Befehl mit der richtigen Option ausführen.

tar -czf Ordnername.tar.gz Ordnername /

Wenn Sie kein tar-Archiv erstellen möchten (möglicherweise möchten Sie nur eine einzelne Datei komprimieren), können Sie den Befehl gzip direkt verwenden.

gzip file.txt

Es wird eine komprimierte Datei mit dem Namen file.txt.gz erstellt


30
Es ist erwähnenswert , was die Optionen -czfnach tarsind: czeigt an, dass Sie ein tar - Archiv erstellt werden sollen, zgilt gzipauf dem Zwischen tar - Archiv, und fist für die späteren endgültigen Dateinamen folder_name.tar.gz.
Fideli

13
Warnung: gzip file.txtErsetzt die Originaldatei.
Zoltán,

6
@ Zoltán Dient gzip -k file.txtzum "Behalten" (nicht Löschen) der Eingabedatei.
Thohl

13

Wenn jemand diese Frage bei der Suche nach "gzip in Mac" immer noch findet, habe ich einen Leitfaden geschrieben, der möglicherweise für andere nützlich ist. Hier kommt's:

Komprimieren

Der grundlegendste Befehl komprimiert die Datei filename.extund ersetzt sie dann filename.ext.gzim selben Verzeichnis.

gzip filename.ext

Wenn Sie Ihre Originaldatei nicht verlieren möchten, müssen Sie die Ausgabe von gzip -cin eine Datei umleiten.

gzip -c filename.ext > anotherfile.gz

Wir können auch von der Standardeingabe komprimieren, um die Ausgabe anderer Befehle zu komprimieren.

cat filename.ext | gzip > anotherfile.gz

OS X enthält auch die Befehle compressund uncompress. Sie sorgen für einen "intelligenteren" gzip, da die Datei nicht komprimiert wird, wenn sie nach dem Komprimierungsprozess wachsen würde. Der folgende Befehl ersetzt filename.extmit filename.ext.Zim selben Verzeichnis.

compress filename.ext

Dekomprimieren

Um eine Datei in ihren unkomprimierten natürlichen Zustand zurückzusetzen, können Sie gzip oder einen anderen Wrapper verwenden. Der Dekomprimierungsmodus von gzip wird mit dem -dFlag aufgerufen . In diesem Modus wird die Datei ersetzen filename.ext.gzmit filename.extim gleichen Verzeichnis. Es gibt auch eine Verknüpfung gunzip, die das Gleiche bewirkt .

gzip -d filename.ext.gz
gunzip filename.ext.gz

Wir können die dekomprimierte Datei auch an die Standardausgabe weiterleiten, um sie in einer anderen Datei zu speichern.

gzip -cd filename.ext.gz > anotherfile
gunzip -c filename.ext.gz > anotherfile

Ein weiterer schneller Weg, den Inhalt eines gzip in die Standardausgabe zu lesen, ist zcat, dass er im Prinzip mit dem Aufrufen identisch ist, gzip -cdSie können jedoch mehrere Dateien aufrufen und sie auf dieselbe Weise verketten lassen, wie der catBefehl Textdateien verkettet . Der einzige Nachteil ist, dass Ihre Dateien mit dem .ZSuffix versehen werden müssen, damit es funktioniert ...

zcat filename.ext.Z
zcat file_a.Z file_b.Z file_c.Z

Aber keine Angst! zcates ist immer noch nützlich, weil es von der Standardausgabe dekomprimieren kann. Sie können Ihre Dateien also grundsätzlich an zcat leiten, um sie im Terminalfenster dekomprimieren zu lassen.

cat filename.ext.gz | zcat

Dies ist sehr nützlich, wenn Sie den Inhalt einer Datei sehr schnell überprüfen und die Ausgabe von zcat sogar in einer Datei speichern möchten.

cat filename.ext.gz | zcat > anotherfile

Der uncompressWrapper funktioniert wie gzip -cdfolgt, sucht jedoch nach Dateien mit der Erweiterung .Z, um sie im aktuellen Verzeichnis zu ersetzen. Sie müssen also nur den Dateinamen angeben, den Sie wiederherstellen möchten. Es ist jedoch in Ordnung, wenn Sie ihn mit der Erweiterung .Z wie aufrufen das Programm wird es ignorieren.

compress filename.ext
uncompress filename.ext

Ich hoffe, Sie finden meinen Leitfaden nützlich :)


4

MacOS X ist Unix, daher sollte dies funktionieren (dies funktioniert unter GNU / Linux)

tar czvf compress.tar.gz ordner

3

Ja, Sie müssen zuerst das Verzeichnis tarieren. Der Befehl tar kann beides:

tar -czf archiv.tar.gz mydir/

extrahiere dein Archiv:

tar -xzf archiv.tar.gz

3

Hinzufügen zur Antwort von @taskinoor: Wenn Sie eine einzelne Dateiversion verwenden, auch bekannt als

gzip file.txt

Beachten Sie, dass die ursprüngliche Datei (file.txt) entfernt wird und Sie nur file.txt.gz haben

Ich würde dies als Kommentar setzen, aber ich habe nicht genug Karma, um das zu tun: =)


1
gzip --keep file.txtwird das Original behalten und erstellen file.txt.gz. Sehen gzip --help.
Blaise

1

Ja das ist korrekt. gzipkann nur eine Datei komprimieren. tarcodiert die Verzeichnisinhalte in eine einzige Datei, die weiter unter Verwendung komprimiert werden kann gzip, bzip2, lzmaoder irgendetwas anderes.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.