Der tar
Der Befehl erstellt tar-Dateien, indem er eine Gruppe von Dateien in ein Archiv umwandelt. Es kann auch Tar-Archive extrahieren, eine Liste der im Archiv enthaltenen Dateien anzeigen, zusätzliche Dateien zu einem bestehenden Archiv hinzufügen und verschiedene andere Arten von Operationen durchführen.
Tar wurde ursprünglich zum Erstellen von Archiven zum Speichern von Dateien auf Magnetbändern entwickelt, weshalb es seinen Namen „T hat Affe AR Schnittlauch“.
Dieser Artikel zeigt, wie man tar
verwendet Befehl zum Extrahieren, Auflisten und Erstellen von Tar-Archiven durch praktische Beispiele und detaillierte Erklärungen der gängigsten Tar-Optionen.
tar
Befehlssyntax #
Es gibt zwei Versionen von tar, BSD tar und GNU tar, mit einigen funktionalen Unterschieden. Auf den meisten Linux-Systemen ist GNU tar standardmäßig vorinstalliert.
Die allgemeine Syntax für tar
Befehl lautet wie folgt:
tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]
OPERATION
- Nur ein Operationsargument ist erlaubt und erforderlich. Die am häufigsten verwendeten Operationen sind:--create
(-c
) - Erstellen Sie ein neues Tar-Archiv.--extract
(-x
) - Extrahieren Sie das gesamte Archiv oder eine oder mehrere Dateien aus einem Archiv.--list
(-t
) - Zeigt eine Liste der im Archiv enthaltenen Dateien an
OPTIONS
- Die am häufigsten verwendeten Operationen sind:--verbose
(-v
) - Zeigt die Dateien an, die vom tar-Befehl verarbeitet werden.--file=archive=name
(-f archive-name
) - Gibt den Namen der Archivdatei an.
ARCHIVE_NAME
- Der Name des Archivs.FILE_NAME(s)
- Eine durch Leerzeichen getrennte Liste von Dateinamen, die aus dem Archiv extrahiert werden sollen. Wenn nicht angegeben, wird das gesamte Archiv extrahiert.
Beim Ausführen von tar-Befehlen können Sie die lange oder die kurze Form des tar
verwenden Operationen und Optionen. Die Langformen sind besser lesbar, während die Kurzformen schneller zu tippen sind. Den Langformoptionen wird ein doppelter Bindestrich vorangestellt (--
). Den Kurzformoptionen wird ein einzelner Bindestrich vorangestellt (-
), die weggelassen werden kann.
Tar-Archiv wird erstellt #
Tar unterstützt eine Vielzahl von Komprimierungsprogrammen wie gzip
, bzip2
, lzip
, lzma
, lzop
, xz
und compress
. Beim Erstellen komprimierter Tar-Archive ist es eine akzeptierte Konvention, das Kompressor-Suffix an den Namen der Archivdatei anzuhängen. Zum Beispiel, wenn ein Archiv mit gzip
komprimiert wurde , sollte es archive.tar.gz heißen.
Um ein tar-Archiv zu erstellen, verwenden Sie den -c
Option gefolgt von -f
und den Namen des Archivs.
Zum Beispiel, um ein Archiv mit dem Namen archive.tar
zu erstellen aus den Dateien namens file1
, file2
, file3
, würden Sie den folgenden Befehl ausführen:
tar -cf archive.tar file1 file2 file3
Hier ist der äquivalente Befehl, der die Langformoptionen verwendet:
tar --create --file=archive.tar file1 file2 file3
Sie können Archive aus dem Inhalt eines oder mehrerer Verzeichnisse oder Dateien erstellen. Standardmäßig werden Verzeichnisse rekursiv archiviert, es sei denn --no-recursion
Option angegeben ist.
Das folgende Beispiel erstellt ein Archiv namens user_backup.tar
des /home/user
Verzeichnis:
tar -cf backup.tar /home/user
Verwenden Sie das -v
Option, wenn Sie die verarbeiteten Dateien sehen möchten.
Tar-Gz-Archiv wird erstellt #
Gzip ist der beliebteste Algorithmus zum Komprimieren von Tar-Dateien. Beim Komprimieren von tar-Archiven mit gzip sollte der Archivname entweder auf tar.gz
enden oder tgz
.
Das -z
Option weist tar an, das Archiv mit gzip
zu komprimieren Algorithmus, wie er erstellt wird. Um beispielsweise ein tar.gz-Archiv aus bestimmten Dateien zu erstellen, würden Sie den folgenden Befehl ausführen:
tar -czf archive.tar.gz file1 file2
Erstellen des Tar Bz2-Archivs #
Ein weiterer beliebter Algorithmus zum Komprimieren von Tar-Dateien ist bzip2. Bei Verwendung von bzip2 sollte der Archivname entweder mit tar.bz2
enden oder tbz
.
Komprimieren Sie das Archiv mit dem bzip2
Algorithmus, rufen Sie tar
auf mit dem -j
Möglichkeit. Der folgende Befehl erstellt eine tar.bz2
Archiv aus den angegebenen Dateien:
tar -cjf archive.tar.bz2 file1 file2
Auflistung der Tar-Archive #
Bei Verwendung mit --list
(-t
) Option, die tar
Der Befehl listet den Inhalt eines tar-Archivs auf, ohne ihn zu extrahieren.
Der folgende Befehl listet den Inhalt von archive.tar
auf Datei:
tar -tf archive.tar
file1
file2
file3
Um weitere Informationen wie Dateieigentümer, Dateigröße und Zeitstempel zu erhalten, verwenden Sie --verbose
(-v
) Option:
tar -tvf archive.tar
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file1
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file2
-rw-r--r-- linuxize/users 0 2018-09-08 01:19 file3
Tar-Archiv wird extrahiert #
Die meisten archivierten Dateien in Linux werden im tar- oder tar.gz-Format archiviert und komprimiert. Zu wissen, wie diese Dateien von der Befehlszeile extrahiert werden, ist wichtig.
Um ein tar-Archiv zu extrahieren, verwenden Sie --extract
(-x
) Option gefolgt vom Archivnamen:
tar -xf archive.tar
Es ist auch üblich, das -v
hinzuzufügen Option zum Drucken der Namen der zu extrahierenden Dateien.
tar -xvf archive.tar
Extrahieren des Tar-Archivs in einem anderen Verzeichnis #
Standardmäßig extrahiert tar den Inhalt des Archivs in das aktuelle Arbeitsverzeichnis. Verwenden Sie das --directory
(-C
), um Archivdateien in einem bestimmten Verzeichnis zu extrahieren:
Zum Beispiel, um den Archivinhalt nach /opt/files
zu extrahieren Verzeichnis können Sie verwenden:
tar -xf archive.tar -C /opt/files
Tar-Gz- und Tar-Bz2-Archive extrahieren #
Beim Extrahieren komprimierter Archive wie tar.gz
oder tar.bz2
, müssen Sie keine Dekomprimierungsoption angeben. Der Befehl ist derselbe wie beim Extrahieren von tar
Archiv:
tar -xf archive.tar.gz
tar -xf archive.tar.bz2
Extrahieren bestimmter Dateien aus einem Tar-Archiv #
Manchmal müssen Sie, anstatt das gesamte Archiv zu extrahieren, möglicherweise nur einige wenige Dateien daraus extrahieren.
Um eine oder mehrere bestimmte Dateien aus einem tar-Archiv zu extrahieren, hängen Sie eine durch Leerzeichen getrennte Liste der zu extrahierenden Dateinamen nach dem Archivnamen an:
tar -xf archive.tar file1 file2
Beim Extrahieren von Dateien müssen Sie ihre genauen Namen angeben, einschließlich des Pfads, wie er von --list
ausgegeben wird (-t
).
Das Extrahieren eines oder mehrerer Verzeichnisse aus einem Archiv ist dasselbe wie das Extrahieren von Dateien:
tar -xf archive.tar dir1 dir2
Wenn Sie versuchen, eine nicht vorhandene Datei zu extrahieren, wird eine Fehlermeldung ähnlich der folgenden angezeigt:
tar -xf archive.tar README
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors
Extrahieren von Dateien aus einem Tar-Archiv mit Wildcard #
Um Dateien basierend auf einem Platzhaltermuster aus einem Archiv zu extrahieren, verwenden Sie --wildcards
Schalten Sie das Muster um und zitieren Sie es, um zu verhindern, dass die Shell es interpretiert.
Zum Beispiel, um Dateien zu extrahieren, deren Namen auf .js
enden (Javascript-Dateien), können Sie verwenden:
tar -xf archive.tar --wildcards '*.js'
Hinzufügen von Dateien zu einem bestehenden Tar-Archiv #
Um Dateien oder Verzeichnisse zu einem bestehenden Tar-Archiv hinzuzufügen, verwenden Sie --append
(-r
) Betrieb.
Zum Beispiel, um eine Datei mit dem Namen newfile
hinzuzufügen zu archive.tar würden Sie Folgendes ausführen:
tar -rvf archive.tar newfile
Entfernen von Dateien aus einem Tar-Archiv #
Verwenden Sie den --delete
Vorgang zum Entfernen von Dateien aus einem Archiv.
Das folgende Beispiel zeigt, wie die Datei file1
entfernt wird aus archive.tar,:
tar --delete -f archive.tar file1
Schlussfolgerung #
Die häufigsten Verwendungen des tar
Befehle sind das Erstellen und Extrahieren eines tar-Archivs. Um ein Archiv zu extrahieren, verwenden Sie den tar -xf
Befehl, gefolgt vom Archivnamen, und um ein neues zu erstellen, verwenden Sie tar -czf
gefolgt vom Archivnamen und den Dateien und Verzeichnissen, die Sie dem Archiv hinzufügen möchten.
Weitere Informationen zum tar-Befehl finden Sie auf der Gnu-tar-Dokumentationsseite.