Dateien packen und komprimieren unter Linux


1. tar


Der Befehl tar dient in erster Linie eigentlich dem Packen von mehreren Dateien in eine Archiv-Datei mit der Endung tar. Mit zusätzlichen Parametern bedient sich tar auch der Kompressionsverfahren gzip oder bzip um die Dateiinhalte zusätzlich zu Komprimieren.

Man muss bei der Verwendung von tar nur einige Parameter kennen und diese gezielt kombinieren.

ParameterBedeutung
cPacken
xEntpacken
fArchivdateiname angeben (z.B: -f archiv.tar)
vMeldungen aller Operationen anzeigen
t nur Testen, nicht packen bzw. entpacken
zKompressionsalgorithmus gzip
jKompressionsalgorithmus bzip2

Nachfolgend einige Beispiele.


1.1Entpacken


Entpacken von tar-Archiven mit gzip-Kompression
tar xzf [ARCHIV].tar.gz


Entpacken von tar-Archiven mit bzip2-Kompression
tar xjf [ARCHIV].tar.bz2


Verzeichnis entpacken
tar xf [ARCHIV].tar


Nur bestimmte entpacken aus Ordner2 entpacken
tar zxvf test.tar Ordner2/


oder bestimmte Datei
tar zxvf test.tar var/log/logfile



1.2Packen


[VERZEICHNIS1] und [DATEI1] in [ARCHIV].tar.gz packen und anschließend mit gzip komprimieren
tar czf [ARCHIV].tar.gz [VERZEICHNIS1] [DATEI1]


[VERZEICHNIS1] und [DATEI1] nach etc.tar.bz2 packen und mit bzip komprimieren
tar cjf [ARCHIV].tar.bz2 [VERZEICHNIS1] [DATEI1]


[VERZEICHNIS1] packen
tar cf [ARCHIV].tar [VERZEICHNIS1]


Verzeichnis packen und Datum in den Verzeichnisnamen einbauen (Internationales Datumsformat nach ISO 8601:2004 mit Bindestrich)
tar cfz backup_`date +%Y-%m-%d`.tar.gz [VERZEICHNIS1]


... und ohne Bindestrich
tar cfz backup_`date +%Y%m%d`.tar.gz [VERZEICHNIS1]



Verzeichnis packen, dabei Datum und Uhrzeit in den Verzeichnisnamen einbauen (ISO 8601:2004)
tar cfz backup_`date +%Y%-m-%d_%H:%M:%S`.tar.gz [VERZEICHNIS1]



Dateien mit bestimmten Muster ausschließen
tar cfz anydir.tar.gz /anydir --exclude=*.log


Dateien aus Dateiliste ausschließen
tar cfz anydir.tar.gz /anydir -X exclude_my.lst



1.3Auflisten


Mit dem Parameter t lässt sich ein Archiv testen. Es kann so z.B. getestet werden, ob das Entpacken eines Archivs möglich ist, die Archivdatei also noch intakt ist, ohne den Inhalt der Datei zu entpacken. Gleichzeitig kann man sich auf diese Weise eine Dateiliste des Archivs ausgeben lassen.

tar -tvf tnotes.tar.gz | less




2. gzip


Man kann gzip auch eigenständig verwenden. Dies ist dann Sinnvoll, wenn nur eine Datei zu Komprimieren ist.

Komprimieren mit gzip
gzip /a/etc.tar


Dekomprimieren mit gzip
gzip -d /a/etc.tar.gz


Man kann gzip auch ganz nebenbei auch sehr gut in eine Kette von Pipes einbauen um z.B. den Inhalt einer Festplatte mit dd zu lesen und direkt über eine Pipe an gzip weiterzuleiten. Siehe dazu Backups.


3. zip


Komprimieren
zip [ARCHIV].zip [DATEI1] [DATEI2]


Verzeichnisse archivieren
zip -r [ARCHIV].zip [VERZEICHNIS1] [VERZEICHNIS2]


Inhalt eines ZIP-Archivs ausgeben
unzip -l [ARCHIV].zip


Entpacken
unzip [ARCHIV].zip



4. rar


unrar e paket.rar




5. Dateiendungen


Bei der Verwendung von den oben erwähnten Befehlen, ist es für den Befehl völlig unbedeutend, welche Dateiendung verwendet wurde. Es zählt nur der Inhalt. Für den Benutzer ist es jedoch in der Praxis schon sehr interessant zu wissen, ob ein Archiv mit tar gepackt wurde und anschließend mit gzip gepackt worden ist.

Deshalb haben sich folgende Dateiendungen eingebürgert:

SuffixBedeutung
.tarMehrere Dateien gepackt in ein tar-Archiv
.tar.gzMehrere Dateien gepackt in ein tar-Archiv und anschließend mit gzip komprimiert
.tar.bz2Mehrere Dateien gepackt in ein tar-Archiv und anschließend mit bzip2 komprimiert
.gzEine Datei mit gzip komprimiert
.bz2Eine Datei mit bzip2 komprimiert
.zipEine oder mehrere Dateien mit zip komprimiert
.rarEine oder mehrere Dateien mit rar komprimiert




Siehe auch
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki