Ausführlich Lesen Sie die Archivierungs- und Komprimierungsbefehle von Linux
Die Notwendigkeit, Dateien zu einem einzigen Archiv zusammen zu packen und zu komprimieren, gibt es seit den ersten Festplatten von Computern, und diese Notwendigkeit ist bis heute geblieben. Alles von Dokumenten und Fotos bis hin zu Software- und Gerätetreibern wird jeden Tag als Archiv hochgeladen und heruntergeladen. Die meisten Computerbenutzer sind mit ZIP-Dateien vertraut, aber es gibt mehr als nur die bescheidene ZIP-Datei. In diesem Tutorial zeigen wir Ihnen die verschiedenen Linux Archivierungs- und Komprimierungsbefehle und die richtige Art, diese zu nutzen.
Tar und gzip
Historisch gesehen ist das Standard-Archiv-Tool unter Linux der Befehl tar
. Ursprünglich stand es für "Tape Archive", aber das war zurück, als Bänder das primäre Medium zum Bewegen von Daten waren. Der tar
Befehl ist sehr flexibel und kann Archivdateien erstellen, komprimieren, aktualisieren, extrahieren und testen. Die Standard-Erweiterung für ein unkomprimiertes tar-Archiv (manchmal tar-Datei oder Tarball genannt) ist .tar, während komprimierte tar-Archive meistens die .tgz-Erweiterung verwenden (dh eine TAR-Datei, die mit GNU zip komprimiert wurde). Tar bietet verschiedene Komprimierungsmethoden an, darunter bzip2, zip, LZW und LZMA.
Verwenden Sie den folgenden Befehl, um ein unkomprimiertes Tarball für alle Dateien in einem Verzeichnis zu erstellen:
tar cvf somefiles.tar *
c
bedeutet create, v
steht für verbose (das heißt, der tar-Befehl listet die Dateien auf, die archiviert werden) und f
sagt tar, dass der nächste Parameter der Name der Archivdatei ist, in diesem Fall "somefiles.tar". Der Platzhalter * bedeutet alle Dateien im Verzeichnis, wie es bei den meisten Linux-Shell-Befehlen der Fall ist.
Der Tarball "somefiles.tar" wird im lokalen Verzeichnis erstellt. Dies kann jetzt mit einem Tool wie gzip, zip, compress oder bzip2 komprimiert werden. Beispielsweise:
gzip somefiles.tar
gzip komprimiert den Tarball und fügt die Erweiterung .gz hinzu. Jetzt befindet sich im lokalen Verzeichnis eine Datei " somefiles.tar.gz
" anstelle der Datei " somefiles.tar
".
Dieser zweistufige Prozess, den Tarball erstellen und komprimieren, kann mit der eingebauten Komprimierung von Tar auf einen Schritt reduziert werden:
tar cvzf somefiles.tgz *
Dadurch wird ein gzip-komprimierter Tarball namens somefiles.tgz
. Die zusätzliche Option z
bewirkt, dass tar den Tarball komprimiert. Anstelle von z
könnten Sie j
, J
oder Z
verwenden, die tear anweisen, bzip2, xz und LZW zu verwenden. xz implementiert LZMA2-Komprimierung, die der gleiche Algorithmus wie das beliebte Windows 7-Zip-Programm ist.
7-Zip
Es ist möglich, eine 7-Zip-kompatible Datei mit dem Befehl 7zr
zu erstellen. Um ein .7z Archiv zu erstellen, benutze:
7zr ein paar Dateien.7z *
Die a
Optionen bedeutet hinzufügen, dh fügen Sie alle lokalen Dateien in das Archiv somefiles.7z. Diese Datei kann dann an einen Windows-Benutzer gesendet werden und sie können den Inhalt ohne Probleme extrahieren.
Die Verwendung von 7zr zur Durchführung von Backups unter Linux wird nicht empfohlen, da 7-zip die Eigentümer- / Gruppeninformationen über die archivierten Dateien nicht speichert. Es ist möglich, 7zr zu verwenden, um einen Tarball zu komprimieren (der die Eigentümerinformationen speichert). Sie können dies mit einer Unix-Pipe wie folgt tun:
tar cvf - * | 7zr a -si einige Dateien.tar.7z
Der Bindestrich nach der f
Option weist tar an, seine Ausgabe an die Unix- stdout
und nicht an eine Datei zu senden. Da wir eine Pipe verwenden, wird die Ausgabe von tar in 7zr eingegeben, die aufgrund der Option -si
auf Eingabe von stdin
wartet. 7zr erstellt dann ein Archiv namens somefiles.tar.7z
das den Tarball enthält, der wiederum die Dateien enthält. Wenn Sie mit der Verwendung von Pipes nicht vertraut sind, können Sie einen Standard-Tarball erstellen und ihn dann mit 7zr in zwei Schritten komprimieren:
tar -cvf somefiles.tar * 7zr ein somefiles.tar.7z somefiles.tar
Extraktion
Extrahieren der Dateien aus diesen verschiedenen Archiven ist auch sehr einfach, hier ist ein kurzer Spickzettel zum Extrahieren der verschiedenen oben erstellten Dateien.
Um einen einfachen Tarball zu extrahieren, benutze:
tar xvf somefiles.tar
Wobei x
Extrakt bedeutet.
Um einen komprimierten Tarball zu extrahieren, benutze:
tar xvzf somefiles.tgz
Die Option z
teilt tar mit, dass gzip zum Komprimieren des ursprünglichen Archivs verwendet wurde. Anstelle von z
könnten Sie j
, J
oder Z
abhängig vom Komprimierungsalgorithmus, der beim Erstellen der Datei verwendet wurde.
Um die Dateien aus einer 7-Zip-Datei zu extrahieren, verwenden Sie:
7zr e somefiles.tar.7z
Fazit
Linux bietet eine Vielzahl von Archivierungs- und Komprimierungsbefehlen. Versuchen Sie, mit den zip- und xz-Befehlen zu experimentieren, sie arbeiten sehr ähnlich wie die anderen hier erwähnten Tools. Wenn Sie nicht weiterkommen, sollten Sie versuchen, die Manpage zu lesen, zB man xz
für zusätzliche Hilfe.