Mit tar Ordner oder Dateien archivieren und ggf. komprimieren.
Allgemeines:
- Die Option " f " wird immer am Ende einer Optionskette benötigt und wird daher auch nicht mehr erwähnt.
- tar eignet sich gut um Ordner mit vielen Dateien von A nach B zu kopieren.
Test Ordner samt Inhalt mit Testdatei erstellen.
mkdir test_ordner
touch test_ordner/test_datei.txt
Mit tar einen Ordner archivieren
~ # tar -cf test_ordner.tar test_ordner/
# Inhalt auflisten
~ # ll
...
drwxr-xr-x 2 root root 4,0K 21. Sep 17:25 test_ordner
-rw-r--r-- 1 root root 10K 21. Sep 17:40 test_ordner.tar
# Archiv "test_ordner.tar" wurde erstellt
Mit tar nur den Inhalt eines Ordners archivieren
- Unter Punkt "Inhalt eines Archivs anzeigen" ist zu sehen dass sich die Struktur im Archiv geändert hat.
cd test_ordner/
tar -cf /root/test_ordner.tar .
ll /root/
...
drwxr-xr-x 2 root root 4,0K 21. Sep 19:07 test_ordner
-rw-r--r-- 1 root root 10K 21. Sep 19:08 test_ordner.tar
# Ohne Pfad-Angabe für das Archiv kommt folgende Meldung. Funktioniert, aber nicht so praktisch.
tar -cf test_ordner.tar .
tar: ./test_ordner.tar ist das Archiv; nicht gesichert.
# Wir befinden uns immer noch im Ordner /root/test_ordner
mkdir unterordner
touch unterordner/test_datei.txt
# Inhalt auflisten
ll
-rw-r--r-- 1 root root 0 21. Sep 17:25 test_datei.txt
drwxr-xr-x 2 root root 4,0K 21. Sep 19:19 unterordner
ll unterordner/
insgesamt 0
-rw-r--r-- 1 root root 0 21. Sep 19:19 test_datei.txt
# Archiv um neue Dateien und Ordner erweitern
tar -cf /root/test_ordner.tar .
# Inhalt des Archivs anzeigen
root@svr13: ~/test_ordner # tar -tf /root/test_ordner.tar
./
./test_datei.txt
./unterordner/
./unterordner/test_datei.txt
# Datei oder Ordner aus einem Archiv entfernen
touch unterordner/1_test_datei.txt
tar -cf /root/test_ordner.tar .
tar -tf /root/test_ordner.tar
./
./test_datei.txt
./unterordner/
./unterordner/test_datei.txt
./unterordner/1_test_datei.txt
rm unterordner/1_test_datei.txt
tar -cf /root/test_ordner.tar .
tar -tf /root/test_ordner.tar
./
./test_datei.txt
./unterordner/
./unterordner/test_datei.txt
Mit tar ein Verzeichnis archivieren und mit gzip komprimieren
- Wir übergeben hier zusätzlich die Option "z". womit tar gzip zum komprimieren benutzt.
~ # tar -czf test_ordner.tar.gz test_ordner/
# Inhalt auflisten
~ # ll
...
drwxr-xr-x 2 root root 4,0K 21. Sep 17:25 test_ordner
-rw-r--r-- 1 root root 10K 21. Sep 17:40 test_ordner.tar
-rw-r--r-- 1 root root 153 21. Sep 17:42 test_ordner.tar.gz
# Komprimiertes Archiv "test_ordner.tar.gz" wurde erstellt
Mit tar ein Verzeichnis archivieren und mit pigz komprimieren
- pigz ist besser für große Archive mit vielen Dateien, weil pigz mehrere Threads benutzt.
- Mit der Option "p" kann man die Anzahl der Threads bestimmen.
- Hier entfällt die Option "z", weil wir an pigz pipen.
# Wir befinden uns im Ordner /root/test_ordner
tar -cf - . | pigz > /root/test_ordner.tar.gz
tar -tf /root/test_ordner.tar.gz
./
./test_datei.txt
./unterordner/
./unterordner/test_datei.txt
Mit tar den Inhalt eines Archivs anzeigen
- Option "t" optional mit Option "v"
tar -tvf test_ordner.tar
drwxr-xr-x root/root 0 2024-09-21 17:25 test_ordner/
-rw-r--r-- root/root 0 2024-09-21 17:25 test_ordner/test_datei.txt
tar -tvf test_ordner.tar.gz
drwxr-xr-x root/root 0 2024-09-21 17:25 test_ordner/
-rw-r--r-- root/root 0 2024-09-21 17:25 test_ordner/test_datei.txt
# Ohne Details
tar -tf test_ordner.tar
test_ordner/
test_ordner/test_datei.txt
tar -tf test_ordner.tar.gz
test_ordner/
test_ordner/test_datei.txt
# Wenn nur die Dateien in einem Ordner archiviert wurden, sieht der Inhalt wie folgt aus.
tar -tvf /root/test_ordner.tar
drwxr-xr-x root/root 0 2024-09-21 19:07 ./
-rw-r--r-- root/root 0 2024-09-21 17:25 ./test_datei.txt
Um das Auspacken besser zu zeigen wird der archivierte Ordner entfernt.
rm -rf test_ordner
Mit tar ein Archiv auspacken
~ # tar -xf test_ordner.tar
# Inhalt auflisten
~ # ll
...
drwxr-xr-x 2 root root 4,0K 21. Sep 17:25 test_ordner
-rw-r--r-- 1 root root 10K 21. Sep 17:40 test_ordner.tar
-rw-r--r-- 1 root root 153 21. Sep 17:42 test_ordner.tar.gz
# Der Ordner "test_ordner" ist wieder vorhanden
# Wir löschen ihn wieder um das folgende Kommando zu testen
~ # rm -rf test_ordner
Mit tar ein gzip komprimiertes Archiv auspacken
- Wir übergeben hier zusätzlich die Option "z". weil es sich um ein mit gzip komprimiertes tar handelt.
~ # tar -xzf test_ordner.tar.gz
~ # ll
...
drwxr-xr-x 2 root root 4,0K 21. Sep 17:25 test_ordner
-rw-r--r-- 1 root root 10K 21. Sep 17:40 test_ordner.tar
-rw-r--r-- 1 root root 153 21. Sep 17:42 test_ordner.tar.gz
# Der Ordner "test_ordner" ist wieder vorhanden
Mit tar ein Archiv auspacken und dabei das Vorhandensein existierender Dateien oder Ordner prüfen
- hierzu verwenden wir die Option "k"
~ # tar -xzkf test_ordner.tar.gz
tar: test_ordner/test_datei.txt: Funktion open fehlgeschlagen: Die Datei existiert bereits
tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler
# das gleiche ohne gzip
~ # tar -xkf test_ordner.tar
tar: test_ordner/test_datei.txt: Funktion open fehlgeschlagen: Die Datei existiert bereits
tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler
Mit tar ein Archiv auspacken und einen anderen Zielordner bestimmen.
~ # mkdir neuer_ordner
~ # tar -xf test_ordner.tar -C neuer_ordner
~ # ls -l neuer_ordner/
insgesamt 4,0K
drwxr-xr-x 2 root root 4,0K 21. Sep 17:25 test_ordner
~ # ls -l neuer_ordner/test_ordner/
insgesamt 0
-rw-r--r-- 1 root root 0 21. Sep 17:25 test_datei.txt