Kompression unter Linux: Unterschied zwischen den Versionen

Aus dem IServ-Wiki
Zur Navigation springen Zur Suche springen
 
K (Änderungen von Reverse22 (Diskussion) rückgängig gemacht und letzte Version von 134.169.135.170 wiederhergestellt)
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Unter [[Linux]] gibt es neben den von Windows bekannten Kompressionsformaten {{WP|ZIP (Dateiformat)|ZIP}} und {{WP|RAR (Datenformat)|RAR}} auch noch eine weitere Anzahl Archiv- und Kompressionsprogramme. Hier sind vor allen {{WP|tar}}, {{WP|gzip|GNU zip}} und {{WP|bzip2}} zu nennen, in letzter Zeit ist auch verstärkt {{WP|7z}} anzutreffen, das eine sehr große Kompressionsrate ermöglicht.
+
Unter [[Linux]] gibt es neben den von Windows bekannten Kompressionsformaten {{WP|ZIP (Dateiformat)|ZIP}} und {{WP|RAR (Datenformat)|RAR}} auch noch eine weitere Anzahl Archiv- und Kompressionsprogramme. Hier sind vor allen {{WP|tar}}, {{WP|gzip}} und {{WP|bzip2}} zu nennen, in letzter Zeit ist auch verstärkt {{WP|7z}} anzutreffen, das eine sehr große Kompressionsrate ermöglicht.
  
 
Bei all diesen Programmen ist grundsätzlich eine Einteilung in ''Archivprogramme'' und ''Kompressionsprogramme'' vorzunehmen: Archivprogramme dienen in erster Linie dazu, mehrere Dateien in einer einzigen Datei zusammenzufassen (bspw. für ein Backup), während Kompressionsprogramme in erster Linie die Dateigröße einer Datei verringern sollen.
 
Bei all diesen Programmen ist grundsätzlich eine Einteilung in ''Archivprogramme'' und ''Kompressionsprogramme'' vorzunehmen: Archivprogramme dienen in erster Linie dazu, mehrere Dateien in einer einzigen Datei zusammenzufassen (bspw. für ein Backup), während Kompressionsprogramme in erster Linie die Dateigröße einer Datei verringern sollen.
  
{{Wichtig|
+
{{Hinweis|In den hier aufgeführten Beispielen werden nur Grundlagen erläutert. Für weitere Informationen genügt ein Blick in die [[Manpage]] (<tt>man befehl</tt>) oder <tt>befehl --help</tt>.}}
In den hier aufgeführten Beispielen werden nur Grundlagen erläutert. Für weitere Informationen genügt ein Blick in die {{WP|Manpage}} (<tt>man befehl</tt>) oder <tt>befehl --help</tt>
 
  
== GNU zip ==
+
== gzip ==
'''GNU Zip''' ist ein reines Kompressionsprogramm, das heißt, es kann nur ''eine einzelne Datei'' damit komprimiert werden. Diese Dateien werden dadurch gekennzeichnet, dass die Endung <tt>.gz</tt> an den Dateinamen angehängt wird, so wird aus <tt>datei.txt</tt> etwa <tt>datei.txt.gz</tt>. ''GNU zip'' wird oft in Kombination mit [[#tar|tar (s. u.)]] verwendet, um mehrere Dateien zu komprimieren. Das Kommando zum Komprimieren lautet <tt>gzip</tt>, das zum Entpacken <tt>gunzip</tt>. Die meisten Editoren (z.B. [[vi]]) können aber auch ''GNU zip''-komprimierte Dateien lesen und schreiben (z.B. <tt>vi datei.txt.gz</tt>).
+
'''gzip''' (abgekürzt für ''GNU zip'') ist ein reines Kompressionsprogramm, das heißt, es kann nur ''eine einzelne Datei'' damit komprimiert werden. Diese Dateien werden dadurch gekennzeichnet, dass die Endung <tt>.gz</tt> an den Dateinamen angehängt wird, so wird aus <tt>datei.txt</tt> etwa <tt>datei.txt.gz</tt>. gzip wird oft in Kombination mit [[#tar|tar (s. u.)]] verwendet, um mehrere Dateien zu komprimieren. Das Kommando zum Komprimieren lautet <tt>gzip</tt>, das zum Entpacken <tt>gunzip</tt>. Die meisten Editoren (z.B. [[vi]]) können aber auch gzip-komprimierte Dateien lesen und schreiben (z.B. <tt>vi datei.txt.gz</tt>).
  
 
Beispiele:
 
Beispiele:
*<tt>gzip datei.txt</tt> komprimiert die Datei <tt>datei.txt</tt> und speichert sie unter <tt>datei.txt.gz</tt>. Zu beachten ist, dass die Datei <tt>datei.txt</tt> nachher gelöscht wird, sodass nur noch die komprimierte Version existiert!
+
<cmdpre>gzip datei.txt</cmdpre>
*<tt>gunzip datei.txt.gz</tt> entpackt die Datei <tt>datei.txt.gz</tt>. Darin ist die Datei namens <tt>datei.txt</tt> enthalten, wie man am Dateinamen erkennen kann. Diesmal wird die Datei <tt>datei.txt.gz</tt> nachher gelöscht, sodass nur die unkomprimierte Version der Datei existiert.
+
komprimiert die Datei <tt>datei.txt</tt> und speichert sie unter <tt>datei.txt.gz</tt>. Das unkomprimierte Original <tt>datei.txt</tt> wird anschließend automatisch gelöscht.
 +
<cmdpre>gunzip datei.txt.gz</cmdpre> entpackt die Datei <tt>datei.txt.gz</tt>. Darin ist die Datei namens <tt>datei.txt</tt> enthalten, wie man am Dateinamen erkennen kann. Das komprimierte Original <tt>datei.txt.gz</tt> wird anschließend automatisch gelöscht.
  
 
== bzip2 ==
 
== bzip2 ==
'''bzip2''' ermöglicht eine effizientere Kompression der Daten als mit ''GNU zip'' und ''ZIP'', ist aber dementsprechend auch zeitaufwändiger. Ebenso wie ''GNU zip'' ist es ein reines Kompressionsprogramm, kann also nur einzelne Dateien komprimieren. Die Handhabung gleicht weitgehend ''GNU zip''; die komprimierten Dateien sind an der Endung <tt>bz</tt> oder <tt>bz2</tt> zu erkennen.
+
'''bzip2''' ermöglicht eine effizientere Kompression der Daten als mit gzip und ZIP, ist aber dementsprechend auch zeitaufwändiger. Ebenso wie gzip ist es ein reines Kompressionsprogramm, kann also nur einzelne Dateien komprimieren. Die Handhabung gleicht weitgehend gzip; die komprimierten Dateien sind an der Endung <tt>bz2</tt> (selten auch <tt>bz</tt>) zu erkennen.
  
 
Beispiele:
 
Beispiele:
*<tt>bzip2 datei.txt</tt> komprimiert die Datei <tt>datei.txt</tt> und speichert sie unter <tt>datei.txt.bz2</tt>. Zu beachten ist, dass die Datei <tt>datei.txt</tt> nachher gelöscht wird, sodass nur noch die komprimierte Version existiert!
+
<cmdpre>bzip2 datei.txt</cmdpre>
*<tt>bunzip2 datei.txt.bz2</tt> entpackt die Datei <tt>datei.txt.bz2</tt>. Darin ist die Datei namens <tt>datei.txt</tt> enthalten, wie man am Dateinamen erkennen kann. Diesmal wird die Datei <tt>datei.txt.bz2</tt> nachher gelöscht, sodass nur die unkomprimierte Version der Datei existiert.
+
komprimiert die Datei <tt>datei.txt</tt> und speichert sie unter <tt>datei.txt.bz2</tt>. Das unkomprimierte Original <tt>datei.txt</tt> wird anschließend automatisch gelöscht.
 +
<cmdpre>bunzip2 datei.txt.bz2</cmdpre>
 +
entpackt die Datei <tt>datei.txt.bz2</tt>. Darin ist die Datei namens <tt>datei.txt</tt> enthalten, wie man am Dateinamen erkennen kann. Das komprimierte Original <tt>datei.txt.bz2</tt> wird anschließend automatisch gelöscht.
  
 
== ZIP ==
 
== ZIP ==
Linux kommt auch mit dem Windows-Standard-Format '''ZIP''' zurecht. ''ZIP'' verbindet ein Kompressions- mit einem Archivprogramm, es können also mehrere Dateien in einem Archiv unter Platzersparnis gespeichert werden. Dem entsprechend kann ''ZIP'' auch Pfadinformationen speichern, sodass die Kompression eines gesamten Verzeichnisses möglich ist. ''ZIP''-Dateien werden auf der Konsole mit dem Befehl <tt>unzip</tt>, gefolgt vom Dateinamen, entpackt. Das Kommando <tt>zip</tt> erstellt dem entsprechend ZIP-Archive.
+
Linux kommt auch mit dem Windows-Standard-Format '''ZIP''' zurecht. ZIP verbindet ein Kompressions- mit einem Archivprogramm, es können also mehrere Dateien oder gesamte Verzeichnisse in einem Archiv gespeichert werden. ZIP-Dateien werden auf der Konsole mit dem Befehl <tt>unzip</tt>, gefolgt vom Dateinamen, entpackt. Das Kommando <tt>zip</tt> erstellt dem entsprechend ZIP-Archive.
  
 
Beispiele:
 
Beispiele:
*<tt>unzip archive.zip</tt> entpackt das Archiv mit dem Namen <tt>archive.zip</tt>.
+
<cmdpre>unzip archive.zip</cmdpre>
*<tt>unzip file.zip -d /opt/</tt> entpackt das Archiv mit dem Namen <tt>file.zip</tt> ins Verzeichnis <tt>/opt</tt>, sofern man dort Schreibrechte besitzt.
+
entpackt das Archiv mit dem Namen <tt>archive.zip</tt>.
*<tt>zip source.zip *.c *.h</tt> erstellt ein Archiv namens <tt>source.zip</tt>, das alle Dateien im aktuellen Verzeichnis enthält, die auf <tt>.c</tt> oder <tt>.h</tt> enden.
+
<cmdpre>unzip file.zip -d /opt/</cmdpre>
 +
entpackt das Archiv mit dem Namen <tt>file.zip</tt> ins Verzeichnis <tt>/opt</tt>, sofern man dort Schreibrechte besitzt.
 +
<cmdpre>zip source.zip *.c *.h</cmdpre>
 +
erstellt ein Archiv namens <tt>source.zip</tt>, das alle Dateien im aktuellen Verzeichnis enthält, die auf <tt>.c</tt> oder <tt>.h</tt> enden.
  
 
== tar ==
 
== tar ==
'''tar''' ist im Unterschied zu allen oben genannten Werkzeugen ein reines ''Archivierungsprogramm''. Es fasst mehrere Dateien in einer einzigen Datei zusammen, nimmt jedoch keine Kompression vor. Dem entsprechend ist es auch möglich, Pfadangaben im Archiv zu speichern, sodass ganze Verzeichnisse archiviert werden können. Um trotzdem eine Kompression zu erzielen, wird ''tar'' meist in Verbindung mit [[#GNU zip|GNU zip (s. o.)]] oder [[#bzip2|bzip2 (s. o.)]] verwendet: die Dateien werden erst mit ''tar'' zusammengefasst, dann wird das entstehende Archiv durch ''GNU zip'' bzw. ''bzip2'' komprimiert. ''tar'' arbeitet dabei effizient mit diesen beiden Kompressionsprogrammen zusammen, sodass ein Kommandoaufruf genügt. Die Archivdateien sind an den Endungen <tt>.tar.gz</tt> oder <tt>.tgz</tt> (für Kompression mit ''GNU zip'') und <tt>.tar.bz</tt> bzw. <tt>.tar.bz2</tt> oder <tt>.tbz</tt> (für Kompression mit ''bzip2'') zu erkennen. Wenn keine Kompression vorgenommen wird, tragen die Archive nur die Endung <tt>.tar</tt>.
+
'''tar''' ist im Unterschied zu allen oben genannten Werkzeugen ein reines ''Archivierungsprogramm''. Es fasst mehrere Dateien oder ganze Verzeichnisse in einer einzigen Datei zusammen, ohne diese zu komprimieren. Zur Kompression werden tar-Archive überlicherweise durch [[#gzip|gzip (s. o.)]] oder [[#bzip2|bzip2 (s. o.)]] "gefiltert": die Dateien werden erst mit tar in einem Archiv zusammengefasst, dann wird das entstehende Archiv durch gzip bzw. bzip2 komprimiert.
 +
 
 +
tar arbeitet dabei effizient mit diesen beiden Kompressionsprogrammen zusammen, sodass ein Kommandoaufruf genügt, um ein komprimiertes Archiv zu erstellen. Die Archivdateien sind an den Endungen <tt>.tar.gz</tt> oder <tt>.tgz</tt> (für Kompression mit gzip) und <tt>.tar.bz</tt> bzw. <tt>.tar.bz2</tt> oder <tt>.tbz</tt> (für Kompression mit bzip2) zu erkennen. Unkomprimierte tar-Archive haben die Endung <tt>.tar</tt>.
  
 
Beispiele:
 
Beispiele:
*<tt>tar czf source.tar.gz *.c *.h</tt> erstellt das Archiv <tt>source.tar.gz</tt>, das alle Dateien mit den Endungen <tt>.c</tt> und <tt>.h</tt> enthält, und komprimiert dieses Archiv mit ''GNU zip''. Die Buchstaben bedeuten:
+
 
**<tt>c</tt> für ''create'', also das Erstellen eines Archivs,
+
<cmdpre>tar czf source.tar.gz *.c *.h</cmdpre>
**<tt>z</tt> für die zusätzliche Kompression mit <tt>GNU zip</tt>,
+
erstellt das Archiv <tt>source.tar.gz</tt>, das alle Dateien mit den Endungen <tt>.c</tt> und <tt>.h</tt> enthält, und komprimiert dieses Archiv mit gzip. Die Buchstaben bedeuten:
**<tt>f</tt> für die Angabe eines Dateinamens, unter dem das Archiv erstellt werden soll.
+
* <tt>c</tt>: '''''c'''reate'', also das Erstellen eines Archivs
*<tt>tar jzf source.tar.bz2 *.c *.h</tt> erstellt dem entsprechend das selbe Archiv wie das obige Kommando; <tt>j</tt> teilt hierbei dem Programm mit, dass eine Kompression mit ''bzip2'' gewünscht wird.
+
* <tt>z</tt>: '''g'''z'''ip'', gzip-Filter verwenden
*<tt>tar xzf source.tar.gz</tt> packt das Archiv <tt>source.tar.gz</tt> aus. Dabei wird erst die komprimierte Datei mit ''GNU zip'' entpackt (dazu der Schalter <tt>z</tt>). Anschließend wird das in der <tt>.gz</tt>-Datei enthaltene ''tar''-Archiv entpackt. Das <tt>x</tt> steht hier für ''extract'', also das Auspacken eines Archivs. Dabei werden auch die Pfadinformationen berücksichtigt, die im Archiv gespeichert sind, die benötigten Verzeichnisse werden ggf. erstellt und vorhandene Dateien überschrieben!
+
* <tt>f</tt>: '''''f'''ile'', das Archiv ist eine Datei und kein Band
*<tt>tar xjf source.tar.bz2</tt> macht das gleiche mit einem ''bzip2''-komprimierten ''tar''-Archiv (hierfür wieder der Schalter <tt>j</tt>).
+
 
*<tt>tar tzf source.tgz</tt> zeigt die Dateien an, die im ''GNU zip''-komprimierten Archiv <tt>source.tgz</tt> enthalten sind.  
+
<cmdpre>tar cjf source.tar.bz2 *.c *.h</cmdpre>
*Entsprechend wird hier wieder <tt>tar tjf source.tbz</tt> für ''bzip2''-komprimierte Archive verwendet.
+
wie oben; verwendet jedoch den bzip2-Filter anstatt dem gzip-Filter.
 +
 
 +
<cmdpre>tar xzf source.tar.gz</cmdpre>
 +
entpackt das Archiv <tt>source.tar.gz</tt>. Dabei wird erst die komprimierte Datei mit gzip entpackt (Schalter <tt>z</tt>). Anschließend wird das in der <tt>.gz</tt>-Datei enthaltene tar-Archiv entpackt. Das <tt>x</tt> steht hier für ''extract'', also das Auspacken eines Archivs. Dabei werden auch die Pfadinformationen berücksichtigt, die im Archiv gespeichert sind, die benötigten Verzeichnisse werden ggf. erstellt und vorhandene Dateien überschrieben.
 +
 
 +
<cmdpre>tar xjf source.tar.bz2</cmdpre>
 +
macht das gleiche mit einem bzip2-komprimierten tar-Archiv (Schalter <tt>j</tt>).
 +
 
 +
<cmdpre>tar tzf source.tgz</cmdpre>
 +
zeigt die Dateien an, die im gzip-komprimierten Archiv <tt>source.tgz</tt> enthalten sind.
 +
 
 +
<cmdpre>tar tjf source.tbz</cmdpre>
 +
wird hier wieder entsprechend für bzip2-komprimierte Archive verwendet.
 +
 
 +
 
 +
Will man nur tar-Archive erstellen bzw. entpacken, entfallen die Optionen zur Kompression:
 +
<cmdpre>tar xf file.tar *.c</cmdpre>
 +
packt alle Dateien mit der Endung <tt>.c</tt> in das unkomprimierte Archiv <tt>file.tar</tt>.
  
 
Meist werden jedoch nicht einzelne Dateien sondern ein ganzes Verzeichnis eingepackt. Dies hat den Vorteil, dass man beim Entpacken nicht erst ein Verzeichnis erstellen muss, indem man die Dateien dann entpackt. Beispiel:
 
Meist werden jedoch nicht einzelne Dateien sondern ein ganzes Verzeichnis eingepackt. Dies hat den Vorteil, dass man beim Entpacken nicht erst ein Verzeichnis erstellen muss, indem man die Dateien dann entpackt. Beispiel:
*<tt>tar czf source.tgz my-program-v1.0/</tt> packt alle Dateien und Unterverzeichnisse im Ordner <tt>my-program-v1.0</tt> zusammen in ein ''GNU zip''-komprimiertes Archiv. Die Verzeichnisstruktur wird dabei vollständig beibehalten.
+
 
*Wenn das oben erstellte Archiv jetzt wieder entpackt wird, wird erst der Ordner <tt>my-program-v1.0</tt> im aktuellen Verzeichnis erstellt und dann darin die gesamte Verzeichnisstruktur entpackt.
+
<cmdpre>tar czf source.tgz my-program-v1.0/</cmdpre>
 +
packt alle Dateien und Unterverzeichnisse im Ordner <tt>my-program-v1.0</tt> zusammen in ein gzip-komprimiertes Archiv. Die Verzeichnisstruktur wird dabei vollständig beibehalten. Wenn das Archiv jetzt wieder entpackt wird, wird erst der Ordner <tt>my-program-v1.0</tt> im aktuellen Verzeichnis erstellt und dann darin die gesamte Verzeichnisstruktur entpackt.
  
 
== 7-Zip ==
 
== 7-Zip ==
'''7-Zip''' fasst, ähnlich wie {{WP|WinRAR}} oder {{WP|WinZIP}} unter Windows, mehrere Kompressions- und Archivprogramme in einem einzigen Werkzeug zusammen. Es bringt ein eigenes Format mit, das sich ''7z'' nennt und sehr hohe Kompression ermöglicht, verarbeitet jedoch auch alle gängigen Formate (zur Zeit: ZIP, GNU zip, tar, bzip2, Z, CPIO, ARJ, Microsoft CAB, RPM, LZH, CHM, RPM- und deb-Pakete und ISO-Images; RAR steckt jedoch noch in den Kinderschuhen…) und stellt dabei automatisch das jeweilige Format der Datei fest. ''7-Zip'' kann jedoch nur 7z-Archive erstellen, bei anderen Formaten ist nur das Hinzufügen von Dateien zu Archiven, das Aktualisieren von Dateien in Archiven und das Entpacken von Archiven möglich.
+
'''7-Zip''' fasst, ähnlich wie {{WP|WinRAR}} oder {{WP|WinZIP}} unter Windows, mehrere Kompressions- und Archivprogramme in einem einzigen Werkzeug zusammen. Es bringt ein eigenes Format mit, das sich ''7z'' nennt und mit dem {{WP|LZMA}}-Algorithmus sehr hohe Kompressionraten erreicht (allerdings sehr zeitaufwendig), verarbeitet jedoch auch alle gängigen Formate (zur Zeit: ZIP, GNU zip, tar, bzip2, Z, CPIO, ARJ, Microsoft CAB, RPM, LZH, CHM, RPM- und deb-Pakete und ISO-Images; RAR steckt jedoch noch in den Kinderschuhen…) und stellt dabei automatisch das jeweilige Format der Datei fest. 7-Zip kann jedoch nur 7z-Archive erstellen, bei anderen Formaten ist nur das Hinzufügen/Aktualisieren von Dateien zu vorhandenen Archiven und das Entpacken möglich.
  
 
Beispiele:
 
Beispiele:
*<tt>7z a file.7z *</tt> erstellt ein ''7z''-Archiv namens <tt>file.7z</tt> und fügt alle Dateien im aktuellen Ordner hinzu (<tt>a</tt> für ''add'')
+
<cmdpre>7z a file.7z *</cmdpre>
*<tt>7z x file.gz</tt> entpackt das Archiv <tt>file.gz</tt>.
+
Erstellt ein 7zip-Archiv namens <tt>file.7z</tt> und fügt alle Dateien im aktuellen Ordner hinzu (<tt>a</tt> für ''add'')
*<tt>7z x file.tar</tt>: ebenso lässt sich jedes andere Archiv entpacken.
+
 
*<tt>7z a file.tar *.c *.h</tt> fügt alle Dateien, die auf <tt>.c</tt> oder <tt>.h</tt> enden, zum angegebenen Archiv hinzu. Hierbei ist zu beachten, dass das angegebene Archiv die Archivierung mehrerer Dateien unterstützen muss, wenn mehrere Dateien zum Aktualisieren angegeben werden (wenn das Archiv z. B. ein <tt>GNU zip</tt>-Archiv ist, können nicht mehrere Dateien enthalten sein – dann gibt man die Datei an, die im Archiv komprimiert ist).
+
<cmdpre>7z x file.gz</cmdpre>
*<tt>7z u file.tar *.c</tt> aktualisiert alle Dateien, die auf <tt>.c</tt> enden, im angegebenen Archiv und fügt sie ggf. hinzu (in Bezug auf mehrere Dateien gilt das gleiche wie oben).
+
Entpackt das Archiv <tt>file.gz</tt>.
 +
 
 +
<cmdpre>7z x file.tar</cmdpre>
 +
Entpackt ein tar-Archiv.
 +
 
 +
<cmdpre>7z a file.tar *.c *.h</cmdpre>
 +
fügt alle Dateien, die auf <tt>.c</tt> oder <tt>.h</tt> enden, zum angegebenen Archiv hinzu. Hierbei ist zu beachten, dass das angegebene Archiv die Archivierung mehrerer Dateien unterstützen muss, wenn mehrere Dateien zum Aktualisieren angegeben werden (wenn das Archiv z. B. ein gzip-Archiv ist, können nicht mehrere Dateien enthalten sein – dann gibt man die Datei an, die im Archiv komprimiert ist).
 +
 
 +
<cmdpre>7z u file.tar *.c</cmdpre> aktualisiert alle Dateien, die auf <tt>.c</tt> enden, im angegebenen Archiv und fügt sie ggf. hinzu (in Bezug auf mehrere Dateien gilt das gleiche wie oben).
 +
 
 +
[[Kategorie:Software]]

Aktuelle Version vom 4. Januar 2012, 11:10 Uhr

Unter Linux gibt es neben den von Windows bekannten Kompressionsformaten Icon Wikipedia De.gifZIP und Icon Wikipedia De.gifRAR auch noch eine weitere Anzahl Archiv- und Kompressionsprogramme. Hier sind vor allen Icon Wikipedia De.giftar, Icon Wikipedia De.gifgzip und Icon Wikipedia De.gifbzip2 zu nennen, in letzter Zeit ist auch verstärkt Icon Wikipedia De.gif7z anzutreffen, das eine sehr große Kompressionsrate ermöglicht.

Bei all diesen Programmen ist grundsätzlich eine Einteilung in Archivprogramme und Kompressionsprogramme vorzunehmen: Archivprogramme dienen in erster Linie dazu, mehrere Dateien in einer einzigen Datei zusammenzufassen (bspw. für ein Backup), während Kompressionsprogramme in erster Linie die Dateigröße einer Datei verringern sollen.

Information In den hier aufgeführten Beispielen werden nur Grundlagen erläutert. Für weitere Informationen genügt ein Blick in die Manpage (man befehl) oder befehl --help.

Inhaltsverzeichnis

gzip

gzip (abgekürzt für GNU zip) ist ein reines Kompressionsprogramm, das heißt, es kann nur eine einzelne Datei damit komprimiert werden. Diese Dateien werden dadurch gekennzeichnet, dass die Endung .gz an den Dateinamen angehängt wird, so wird aus datei.txt etwa datei.txt.gz. gzip wird oft in Kombination mit tar (s. u.) verwendet, um mehrere Dateien zu komprimieren. Das Kommando zum Komprimieren lautet gzip, das zum Entpacken gunzip. Die meisten Editoren (z.B. vi) können aber auch gzip-komprimierte Dateien lesen und schreiben (z.B. vi datei.txt.gz).

Beispiele:

befehl
gzip datei.txt

komprimiert die Datei datei.txt und speichert sie unter datei.txt.gz. Das unkomprimierte Original datei.txt wird anschließend automatisch gelöscht.

befehl
gunzip datei.txt.gz

entpackt die Datei datei.txt.gz. Darin ist die Datei namens datei.txt enthalten, wie man am Dateinamen erkennen kann. Das komprimierte Original datei.txt.gz wird anschließend automatisch gelöscht.

bzip2

bzip2 ermöglicht eine effizientere Kompression der Daten als mit gzip und ZIP, ist aber dementsprechend auch zeitaufwändiger. Ebenso wie gzip ist es ein reines Kompressionsprogramm, kann also nur einzelne Dateien komprimieren. Die Handhabung gleicht weitgehend gzip; die komprimierten Dateien sind an der Endung bz2 (selten auch bz) zu erkennen.

Beispiele:

befehl
bzip2 datei.txt

komprimiert die Datei datei.txt und speichert sie unter datei.txt.bz2. Das unkomprimierte Original datei.txt wird anschließend automatisch gelöscht.

befehl
bunzip2 datei.txt.bz2

entpackt die Datei datei.txt.bz2. Darin ist die Datei namens datei.txt enthalten, wie man am Dateinamen erkennen kann. Das komprimierte Original datei.txt.bz2 wird anschließend automatisch gelöscht.

ZIP

Linux kommt auch mit dem Windows-Standard-Format ZIP zurecht. ZIP verbindet ein Kompressions- mit einem Archivprogramm, es können also mehrere Dateien oder gesamte Verzeichnisse in einem Archiv gespeichert werden. ZIP-Dateien werden auf der Konsole mit dem Befehl unzip, gefolgt vom Dateinamen, entpackt. Das Kommando zip erstellt dem entsprechend ZIP-Archive.

Beispiele:

befehl
unzip archive.zip

entpackt das Archiv mit dem Namen archive.zip.

befehl
unzip file.zip -d /opt/

entpackt das Archiv mit dem Namen file.zip ins Verzeichnis /opt, sofern man dort Schreibrechte besitzt.

befehl
zip source.zip *.c *.h

erstellt ein Archiv namens source.zip, das alle Dateien im aktuellen Verzeichnis enthält, die auf .c oder .h enden.

tar

tar ist im Unterschied zu allen oben genannten Werkzeugen ein reines Archivierungsprogramm. Es fasst mehrere Dateien oder ganze Verzeichnisse in einer einzigen Datei zusammen, ohne diese zu komprimieren. Zur Kompression werden tar-Archive überlicherweise durch gzip (s. o.) oder bzip2 (s. o.) "gefiltert": die Dateien werden erst mit tar in einem Archiv zusammengefasst, dann wird das entstehende Archiv durch gzip bzw. bzip2 komprimiert.

tar arbeitet dabei effizient mit diesen beiden Kompressionsprogrammen zusammen, sodass ein Kommandoaufruf genügt, um ein komprimiertes Archiv zu erstellen. Die Archivdateien sind an den Endungen .tar.gz oder .tgz (für Kompression mit gzip) und .tar.bz bzw. .tar.bz2 oder .tbz (für Kompression mit bzip2) zu erkennen. Unkomprimierte tar-Archive haben die Endung .tar.

Beispiele:

befehl
tar czf source.tar.gz *.c *.h

erstellt das Archiv source.tar.gz, das alle Dateien mit den Endungen .c und .h enthält, und komprimiert dieses Archiv mit gzip. Die Buchstaben bedeuten:

  • c: create, also das Erstellen eines Archivs
  • z: g'zip, gzip-Filter verwenden
  • f: file, das Archiv ist eine Datei und kein Band
befehl
tar cjf source.tar.bz2 *.c *.h

wie oben; verwendet jedoch den bzip2-Filter anstatt dem gzip-Filter.

befehl
tar xzf source.tar.gz

entpackt das Archiv source.tar.gz. Dabei wird erst die komprimierte Datei mit gzip entpackt (Schalter z). Anschließend wird das in der .gz-Datei enthaltene tar-Archiv entpackt. Das x steht hier für extract, also das Auspacken eines Archivs. Dabei werden auch die Pfadinformationen berücksichtigt, die im Archiv gespeichert sind, die benötigten Verzeichnisse werden ggf. erstellt und vorhandene Dateien überschrieben.

befehl
tar xjf source.tar.bz2

macht das gleiche mit einem bzip2-komprimierten tar-Archiv (Schalter j).

befehl
tar tzf source.tgz

zeigt die Dateien an, die im gzip-komprimierten Archiv source.tgz enthalten sind.

befehl
tar tjf source.tbz

wird hier wieder entsprechend für bzip2-komprimierte Archive verwendet.


Will man nur tar-Archive erstellen bzw. entpacken, entfallen die Optionen zur Kompression:

befehl
tar xf file.tar *.c

packt alle Dateien mit der Endung .c in das unkomprimierte Archiv file.tar.

Meist werden jedoch nicht einzelne Dateien sondern ein ganzes Verzeichnis eingepackt. Dies hat den Vorteil, dass man beim Entpacken nicht erst ein Verzeichnis erstellen muss, indem man die Dateien dann entpackt. Beispiel:

befehl
tar czf source.tgz my-program-v1.0/

packt alle Dateien und Unterverzeichnisse im Ordner my-program-v1.0 zusammen in ein gzip-komprimiertes Archiv. Die Verzeichnisstruktur wird dabei vollständig beibehalten. Wenn das Archiv jetzt wieder entpackt wird, wird erst der Ordner my-program-v1.0 im aktuellen Verzeichnis erstellt und dann darin die gesamte Verzeichnisstruktur entpackt.

7-Zip

7-Zip fasst, ähnlich wie Icon Wikipedia De.gifWinRAR oder Icon Wikipedia De.gifWinZIP unter Windows, mehrere Kompressions- und Archivprogramme in einem einzigen Werkzeug zusammen. Es bringt ein eigenes Format mit, das sich 7z nennt und mit dem Icon Wikipedia De.gifLZMA-Algorithmus sehr hohe Kompressionraten erreicht (allerdings sehr zeitaufwendig), verarbeitet jedoch auch alle gängigen Formate (zur Zeit: ZIP, GNU zip, tar, bzip2, Z, CPIO, ARJ, Microsoft CAB, RPM, LZH, CHM, RPM- und deb-Pakete und ISO-Images; RAR steckt jedoch noch in den Kinderschuhen…) und stellt dabei automatisch das jeweilige Format der Datei fest. 7-Zip kann jedoch nur 7z-Archive erstellen, bei anderen Formaten ist nur das Hinzufügen/Aktualisieren von Dateien zu vorhandenen Archiven und das Entpacken möglich.

Beispiele:

befehl
7z a file.7z *

Erstellt ein 7zip-Archiv namens file.7z und fügt alle Dateien im aktuellen Ordner hinzu (a für add)

befehl
7z x file.gz

Entpackt das Archiv file.gz.

befehl
7z x file.tar

Entpackt ein tar-Archiv.

befehl
7z a file.tar *.c *.h

fügt alle Dateien, die auf .c oder .h enden, zum angegebenen Archiv hinzu. Hierbei ist zu beachten, dass das angegebene Archiv die Archivierung mehrerer Dateien unterstützen muss, wenn mehrere Dateien zum Aktualisieren angegeben werden (wenn das Archiv z. B. ein gzip-Archiv ist, können nicht mehrere Dateien enthalten sein – dann gibt man die Datei an, die im Archiv komprimiert ist).

befehl
7z u file.tar *.c

aktualisiert alle Dateien, die auf .c enden, im angegebenen Archiv und fügt sie ggf. hinzu (in Bezug auf mehrere Dateien gilt das gleiche wie oben).