6.0 KiB
tar - Archive erstellen und Software installieren
Der tar-Befehl (tape archive) erstellt und entpackt Archive. Oft in Kombination mit Kompression (gzip, bzip2, xz).
Grundsyntax
tar [OPTIONEN] [ARCHIV] [DATEIEN...]
Archive erstellen
Einfaches Archiv (unkomprimiert)
tar -cf archiv.tar verzeichnis/
-c= create (erstellen)-f= file (Dateiname)
Mit gzip-Kompression (.tar.gz)
tar -czf archiv.tar.gz verzeichnis/
-z= gzip
Mit bzip2-Kompression (.tar.bz2)
tar -cjf archiv.tar.bz2 verzeichnis/
-j= bzip2
Mit xz-Kompression (.tar.xz)
tar -cJf archiv.tar.xz verzeichnis/
-J= xz (beste Kompression)
Mit Fortschrittsanzeige
tar -czf archiv.tar.gz verzeichnis/ -v
-v= verbose (Details anzeigen)
Archive entpacken
Automatische Kompressionserkennung
tar -xf archiv.tar.gz
-x= extract (entpacken)
In bestimmtes Verzeichnis
tar -xf archiv.tar.gz -C /ziel/verzeichnis
Mit Fortschrittsanzeige
tar -xvf archiv.tar.gz
Archiv-Inhalt anzeigen
tar -tf archiv.tar.gz
-t= list (auflisten)
Mit Details:
tar -tvf archiv.tar.gz
Praktische Beispiele
Backup erstellen
tar -czf backup-$(date +%Y%m%d).tar.gz /home/user/dokumente
Bestimmte Dateien ausschließen
tar -czf archiv.tar.gz --exclude='*.tmp' --exclude='.git' verzeichnis/
Nur bestimmte Dateien hinzufügen
tar -czf logs.tar.gz /var/log/*.log
Zu bestehendem Archiv hinzufügen
tar -rf archiv.tar neue_datei.txt
Hinweis: Funktioniert nur bei unkomprimierten Archiven!
Einzelne Datei aus Archiv extrahieren
tar -xzf archiv.tar.gz pfad/zur/datei.txt
Archiv auf andere Maschine übertragen
tar -czf - verzeichnis/ | ssh user@server "cd /ziel && tar -xzf -"
Dateirechte bewahren
tar -czpf archiv.tar.gz verzeichnis/
-p= preserve permissions
Als Root entpacken und Eigentümer bewahren:
sudo tar -xpf archiv.tar.gz
Inkrementelles Backup
tar -czf backup-full.tar.gz -g snapshot.file verzeichnis/
tar -czf backup-incr.tar.gz -g snapshot.file verzeichnis/
-g= incremental (inkrementell)
Geschwindigkeit vs. Kompression
| Format | Geschwindigkeit | Kompression | Empfehlung |
|---|---|---|---|
.tar |
Sehr schnell | Keine | Lokale Kopien |
.tar.gz |
Schnell | Gut | Standard |
.tar.bz2 |
Mittel | Besser | Archivierung |
.tar.xz |
Langsam | Beste | Langzeit-Archiv |
Fehler vermeiden
Führenden Slash entfernen
tar -czf archiv.tar.gz --absolute-names /home/user/dokumente # Mit /
tar -czf archiv.tar.gz -C /home/user dokumente # Ohne /
Zweite Variante ist sicherer beim Entpacken.
Große Archive
Prüfe Speicherplatz vorher:
du -sh verzeichnis/
df -h .
Testen vor Löschen
tar -czf backup.tar.gz daten/
tar -tzf backup.tar.gz | head # Inhalt prüfen
# Erst dann löschen:
rm -rf daten/
Mit Verschlüsselung
# Erstellen und verschlüsseln
tar -czf - verzeichnis/ | gpg -c > archiv.tar.gz.gpg
# Entschlüsseln und entpacken
gpg -d archiv.tar.gz.gpg | tar -xzf -
Software aus tar.gz installieren
Eine .tar.gz-Datei kann verschiedene Inhalte haben:
- Quellcode → muss kompiliert werden
- Kompilierte Binaries → nur entpacken und ausführen
- Paket für Distribution → mit Paketmanager installieren
Archiv entpacken und untersuchen
tar -xvzf paket.tar.gz
cd paket
ls -la
Prüfe immer README, INSTALL oder INSTALL.txt:
cat README
cat INSTALL
Installation aus Quellcode
Voraussetzungen installieren:
Debian/Ubuntu:
sudo apt install build-essential
Fedora:
sudo dnf groupinstall "Development Tools"
Standard-Kompilierung (autotools):
./configure
make
sudo make install
CMake-basierte Projekte:
mkdir build
cd build
cmake ..
make
sudo make install
Installation von fertigen Binaries
Wenn das Archiv fertige Programme enthält:
chmod +x programmname
./programmname
Permanent installieren nach /usr/local/bin:
sudo cp programmname /usr/local/bin/
Oder nach ~/.local/bin (ohne sudo):
mkdir -p ~/.local/bin
cp programmname ~/.local/bin/
Stelle sicher, dass ~/.local/bin im PATH ist:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Deinstallation
Bei selbst kompilierten Programmen:
cd paket/
sudo make uninstall
Falls make uninstall nicht verfügbar ist:
Mit checkinstall (empfohlen):
sudo apt install checkinstall # Debian/Ubuntu
# Statt "sudo make install"
sudo checkinstall
# Später deinstallieren wie normales Paket
sudo apt remove paketname
Manuell:
# Liste der installierten Dateien erstellen
sudo make install > install.log 2>&1
# Zum Deinstallieren Dateien aus log löschen
Beispiel-Workflow
# 1. Entpacken
tar -xzf programm-1.0.tar.gz
cd programm-1.0
# 2. Dokumentation lesen
cat README
cat INSTALL
# 3. Konfigurieren und kompilieren
./configure --prefix=/usr/local
make
# 4. Optional: Tests ausführen
make check
# 5. Installieren
sudo make install
# 6. Testen
which programmname
programmname --version
Typische Verzeichnisse
Nach make install werden Dateien meist hier installiert:
/usr/local/bin/- Programme/usr/local/lib/- Bibliotheken/usr/local/share/- Daten/Dokumentation/usr/local/etc/- Konfiguration
Siehe auch
- IT-Know-How/Linux/BASH Basics/rsync - Alternative für Backups
- IT-Know-How/Linux/BASH Basics/find - Dateien für Archivierung finden
- IT-Know-How/Linux/BASH Basics/grep - Archiv-Inhalte durchsuchen
- IT-Know-How/Linux/BASH Basics/Dateiberechtigungen - Rechte in Archiven bewahren
- IT-Know-How/Linux/BASH Basics/ls - Archive anzeigen