Archive im Terminal: tar, gzip und zip
Kurz: tar bündelt viele Dateien zu einem Archiv, gzip komprimiert es; zusammen ergeben sie die typische .tar.gz-Datei, die man unter Linux überall findet.
Genauer: Unter Linux und macOS trennt man Bündeln (tar) und Komprimieren (gzip, xz, zstd). Das Ergebnis projekt.tar.gz wird auch Tarball genannt.
Im Detail
tar: Archive erstellen und entpacken
tar -czf projekt.tar.gz ordner/ # erstellen (c=create, z=gzip, f=Datei)
tar -xzf projekt.tar.gz # entpacken (x=extract)
tar -tzf projekt.tar.gz # Inhalt anzeigen (t=list)
tar -xzf projekt.tar.gz -C /ziel # in anderes Verzeichnis
tar -xzf projekt.tar.gz datei.txt # nur eine Dateiv (verbose) zeigt Dateinamen. Merkhilfe: create, xtract, test/list, file. Moderne tar erkennt die Kompression beim Entpacken oft automatisch.
Kompressionsverfahren
- gzip (
.gz): schnell, weit verbreitet. - bzip2 (
.bz2), xz (.xz): kleiner, aber langsamer.tar -cJf x.tar.xz ordner/. - zstd (
.zst): sehr schnell mit guter Rate, modern. Einzeldateien:gzip datei(ersetzt sie durchdatei.gz),gunzip datei.gz,xz datei,zstd datei. Mit-kbleibt das Original.
zip und 7z
zip -r archiv.zip ordner/
unzip archiv.zip
unzip -l archiv.zip # Inhalt
7z a archiv.7z ordner/zip ist plattformübergreifend (Windows, macOS, Linux); tar speichert zusätzlich Dateirechte und Besitzer, deshalb besser für Linux-Backups. 7z komprimiert stark und kann verschlüsseln (-p).
Tipps und Vorsicht
Archive vor dem Entpacken ansehen (tar -tzf), um nicht unkontrolliert viele Dateien in ein Verzeichnis zu schütten („Tar Bomb“). Pfade mit .. oder absolute Pfade in fremden Archiven sind gefährlich. Kontrolle mit Prüfsummen (sha256sum). Für Backups auf Übertragung und Metadaten achten; rsync oder restic sind dafür oft besser geeignet.
Siehe auch: ZIP-Dateien entpacken und erstellen, Backups unter Linux, Kompression, 7-Zip