logo

Tar-Befehl unter Linux/Unix mit Beispielen

Der Befehl tar ist die Abkürzung für Bandarchiv unter Linux. Dieser Befehl wird zum Erstellen eines Archivs und zum Extrahieren der Archivdateien verwendet. In Linux , es ist einer der wesentlichen Befehle, die die Archivierungsfunktionalität erleichtern. Mit diesem Befehl können wir unkomprimierte und komprimierte Archivdateien erstellen und diese auch ändern und verwalten.

Tar ist ein Dienstprogramm einer Computersoftware, mit dem im Computerbereich mehrere Dateien in einer einzigen Archivdatei zusammengefasst werden können. Zu Sicherungs- und Verteilungszwecken wird es oft als Tarball bezeichnet. Der Name leitet sich von „Tape Archive“ ab, da es eigentlich für die Spezifizierung von Daten auf sequentiellen E/A-Geräten ohne deren Dateisysteme entwickelt wurde. Die von tar erstellten Archivdatengruppen umfassen viele Dateisystemparameter wie Verzeichnisorganisation, Dateizugriffsberechtigung, Eigentümer, Zeitstempel und Name. zugunsten von pax verzichtete POSIX auf tar, tar ist jedoch weit verbreitet.

Zunächst wurde es im Januar 1979 in Version 7 unter Unix angekündigt und ersetzte das tp-Programm. Um die Daten zu speichern, wurde die Dateistruktur in POSIX.1-1988 und später POSIX.1-2001 standardisiert und wurde zu einem Muster, das von fast allen modernen Dateiarchivierungssystemen unterstützt wird. Unix-ähnliche Betriebssysteme enthalten im Allgemeinen Tools zur Unterstützung von TAR-Dateien und Dienstprogramme für deren Komprimierung, wie bzip2 und gzip.
Seit dem Microsoft-Update vom 10. April 2018 ist BSD-tar in Microsoft Windows enthalten, und es gibt zwei oder mehr Tools von Drittanbietern, um diese Muster unter Windows zu lesen und zu schreiben.

Dateiformate von tar

Es stehen viele TAR-Dateiformate zur Verfügung, darunter aktuelle und historische. In POSIX sind zwei TAR-Formate geschrieben: pax und ustar.

Header

Der Datei-Header-Datensatz enthält die Metadaten einer Datei. Im Header-Datensatz werden die Informationen in den ASCII-Standards codiert, um Flexibilität über verschiedene Architekturen hinweg durch unterschiedliche Byte-Reihenfolgen zu gewährleisten. Wenn also jede Datei eine ASCII-Textdatei in einem Archiv ist und ASCII-Namen enthält, ist das Archiv eine ASCII-Textdatei (mit mehreren NUL-Zeichen).

In der folgenden Tabelle werden mehrere Felder erwähnt, die durch das tatsächliche Unix-TAR-Format definiert sind. Die Linkdatei-/Indikatortyptabelle enthält einige moderne Erweiterungen. Ein Feld wird mit verschiedenen NUL-Bytes gefüllt, wenn es nicht verwendet wird.

Tar-Header vor POSIX.1-1988:

Feld Feldgröße Feldversatz
Dateiname 100 0
Dateimodus 8 100
Numerische Benutzer-ID des Eigentümers 8 108
Numerische Benutzer-ID der Gruppe 8 116
Byte-Dateigröße 12 124
Zeitpunkt der letzten Änderung in Form einer numerischen Unix-Zeit 12 136
Prüfsumme für den Header-Datensatz 8 148
Link-Anzeige 1 156
Name der verknüpften Datei 100 157

Ustart-Format

Im Ustar-Format schreibt und liest fast jedes moderne Tar-Programm Archive, angekündigt durch den POSIX-Standard IEEE P1003.1 aus dem Jahr 1988. Er führte zusätzliche Header-Felder ein. Frühere Tar-Programme würden die zusätzlichen Informationen vermeiden, aber neue Programme prüfen das Vorhandensein der Zeichenfolge „Ustar“, um zu entscheiden, ob das neuere Format verwendet wird.

Feld Feldgröße Feldversatz
Viele Felder, wie im vorherigen Format 156 0
Typflagge 1 156
Ähnliches Feld wie im vorherigen Format 100 157
'ustar' Ustar-Indikator, dann NUL 6 257
'00' Ustar-Version 2 263
Benutzername des Eigentümers 32 265
Gruppenname des Eigentümers 32 297
Hauptnummer des Geräts 8 329
Unternummer des Geräts 8 337
Präfix für den Dateinamen 155 3. 4. 5

POSIX.1-2001/Pax

Sun schlug 1997 eine Technik zum Hinzufügen von Erweiterungen zu einem TAR-Format vor. Später wurde sie für den POSIX.1-2001-Standard genehmigt. Das Format wird Pax-Format oder erweitertes TAR-Format genannt. Einige Tags werden durch den POSIX-Standard spezifiziert, darunter mtime, atime, linkpath, gname, uname, size, gid, uid und eine Zeichensatzdefinition für Gruppen-/Benutzernamen und Pfadnamen.

Wichtige Implementierungen von tar

Die wichtigsten Implementierungen sind in der Ursprungsreihenfolge aufgeführt:

    Solaris-Teer ist standardmäßig auf dem Solaris-Betriebssystem verfügbar und basiert auf dem aktuellen Unix V7. GNU-Teer ist eine Standardeinstellung auf fast jeder Linux-Distribution. Es basiert auf einer Public-Domain-Implementierung pdtar, die 1987 begann. Neuere Ausgaben können viele Formate verwenden, wie zum Beispiel GNU, pax, v7 und ustar. FreeBSD-Tar ist zu einem Standard-TAR auf fast jedem auf Berkeley Software Distribution basierenden Betriebssystem geworden, wie zum Beispiel Mac OS X. Schily tar ist historisch bedeutsam, da einige seiner Erweiterungen berühmt waren. Die Erstveröffentlichung erfolgte im April 1997. Python-Tardatei unterstützt zwei oder mehr TAR-Formate, z. B. GNU, Pax und Ustar; Es kann die SunOS-TAR-Extended- und V7-Formate lesen, aber nicht erstellen. pax ist ein Standardformat für die Archiverstellung. Es ist seit 2003 für Benutzer verfügbar.

Darüber hinaus können die meisten cpio- und pax-Implementierungen zwei oder mehr TAR-Dateitypen erstellen und lesen.

Syntax des tar-Befehls:

 tar [options] [archive-file] [directory or file to be archived] 

Optionen im tar-Befehl

Nachfolgend sind verschiedene Optionen im Befehl tar aufgeführt:

    -C:Diese Option wird zum Erstellen des Archivs verwendet.-F:Diese Option wird zum Erstellen eines Archivs zusammen mit dem angegebenen Namen der Datei verwendet.-X:Diese Option wird zum Extrahieren von Archiven verwendet.-In:Es kann zum Hinzufügen eines Archivs zur vorhandenen Archivdatei verwendet werden.-T:Es wird zum Anzeigen oder Auflisten von Dateien in der archivierten Datei verwendet.-A:Diese Option wird zum Verketten der Archivdateien verwendet.-In:Es kann verwendet werden, um ausführliche Informationen anzuzeigen.-J:Es wird zum Filtern von Archiv-TAR-Dateien mit Hilfe von tbzip verwendet.-Mit:Es ist eine ZIP-Datei und informiert den Befehl tar, der mit Hilfe von gzip eine TAR-Datei erstellt.-R:Diese Option wird zum Aktualisieren und Hinzufügen eines Verzeichnisses oder einer Datei in einer vorhandenen .tar-Datei verwendet.-IN:Diese Option wird zur Überprüfung der Archivdatei verwendet.

Einführung in die Archivdatei

Die Archivdatei kann als eine Datei definiert werden, die mehrere Dateien mit Metadaten enthält. Diese Dateien werden zum Sammeln mehrerer Datendateien in einer einzelnen Datei verwendet, um die Speicherung und Portabilität zu erleichtern. Es kann auch zum Komprimieren von Dateien verwendet werden, um weniger Speicherplatz zu verbrauchen.

Beispiele für den Befehl tar

Einige der wichtigen Beispiele, die im tar-Befehl häufig verwendet werden, sind wie folgt:

1. Erstellen eines unkomprimierten TAR-Archivs mit der Option -cvf

Diese Option erstellt eine TAR-Datei namens Datei.tar . Es ist das Archiv jeder darin enthaltenen TXT-Datei mydir Verzeichnis.

Der Befehl lautet wie folgt:

 $ tar cvf file.tar *.txt 

Tar-Befehl unter Linux

2. Extrahieren von Dateien aus dem Archiv mit der Option -xvf

Mit dieser Option können Dateien über Archive extrahiert werden.

Der Befehl lautet wie folgt:

 $ tar xvf file.tar 

Tar-Befehl unter Linux

3. GZIP-Komprimierung über TAR-Archiv mit der Option -z

Diese Option erstellt eine TAR-Datei namens file.tar.gz. Es ist das Archiv jeder TXT-Datei.

Vergleichen Sie Zeichenfolgen Java

Der Befehl lautet wie folgt:

 $ tar cvzf file.tar.gz *.txt 

Tar-Befehl unter Linux

4. Extrahieren des gzip-tar-Archivs mit der Option -xvzf

Diese Option kann die Dateien über file.tar.gz tar-archivierte Dateien extrahieren.

Der Befehl lautet wie folgt:

 $ tar xvzf file.tar.gz 

Tar-Befehl unter Linux

5. Komprimierte TAR-Dateien mit der Option -j erstellen

Diese Option hilft uns beim Erstellen und Komprimieren von Archivdateien. Sowohl das Dekomprimieren als auch das Komprimieren dauert im Vergleich zu gzip länger.

Der Befehl lautet wie folgt:

 $ tar cvfj file.tar.tbz hello1.txt 

Tar-Befehl unter Linux

6. Entpacken Sie ein einzelnes angegebenes Verzeichnis oder eine einzelne Datei unter Linux

Diese Option wird verwendet, um jede Datei in unserem aktuellen Verzeichnis oder innerhalb des mit der Option -C angegebenen Verzeichnisses zu entpacken.

Der Befehl lautet wie folgt:

 $ tar -xvf file.tar -C file's path in the directory 

Tar-Befehl unter Linux

Oder,

 $ tar -xvf file.tar 

Tar-Befehl unter Linux

7. Entpacken Sie mehrere .tar.tbz-, .tar.gz- und .tar-Dateien unter Linux

Diese Option wird uns dabei helfen verbreiten oder extrahieren Sie mehr als eine Datei aus tar.bz2, tar.gz und einer TAR-Archivdatei.

Das Beispiel dieser Option lautet wie folgt:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Tar-Befehl unter Linux

Oder,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Tar-Befehl unter Linux

Oder,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Tar-Befehl unter Linux

8. Überprüfen Sie die Größe der vorhandenen tar.tbz-, tar.gz- und tar-Dateien

Der Befehl hilft uns, die oben erwähnte Größe der Archivdatei in Kilobyte (KB) anzuzeigen.

Der Befehl lautet wie folgt:

 $ tar -czf - file2.tar.tbz | wc -c 

Oder,

 $ tar -czf - file1.tar.gz | wc -c 

Oder,

 $ tar -czf - file.tar | wc -c 

Tar-Befehl unter Linux

9. Aktualisieren Sie die vorhandene TAR-Datei

Unter Linux lautet der Befehl zum Aktualisieren einer vorhandenen TAR-Datei wie folgt:

 $ tar rvf file.tar *.txt 

10. Inhaltsliste und Beschreibung der TAR-Datei mit der Option tf

Diese Option hilft uns, die gesamte Liste der Archivdateien aufzulisten. Außerdem können wir bestimmte Inhalte in jeder TAR-Datei auflisten.

Der Befehl lautet wie folgt:

 $ tar tf file.tar 

Tar-Befehl unter Linux

11. Zeigen Sie das Archiv mit der Option -tvf an

Unter Linux können wir die Option -tvf verwenden, um das Archiv anzuzeigen.

Der Befehl lautet wie folgt:

 $ tar -tvf file.tar 

Tar-Befehl unter Linux

12. Übergeben Sie den Dateinamen als Argument, um eine TAR-Datei zu finden

Mit dieser Option können Sie die archivierten Dateien mit ihren Informationen anzeigen.

Der Befehl lautet wie folgt:

 $ tar tvf file.tar filename 

Tar-Befehl unter Linux

13. Verwenden von Pipe zum Auslösen des „grep-Befehls“, um zu suchen, wonach wir suchen

Diese Option hilft uns, nur das erwähnte Bild oder den erwähnten Text aufzulisten Griff durch archivierte Dateien.

Der Befehl lautet wie folgt:

Größe der Schriftart Latex
 $ tar tvf file.tar | grep 'filename.file' 

Oder,

 $ tar tvf file.tar | grep 'text to search' 

Tar-Befehl unter Linux

Einführung in Wildcards

Alternativ werden Wildcards unter Linux auch als Wildcard-Zeichen oder Wild-Character bezeichnet. Es ist ein Symbol, das zum Darstellen oder Ersetzen mehrerer Zeichen verwendet wird.

Typischerweise sind Platzhalter entweder ein Fragezeichen (?), das ein einzelnes Zeichen darstellt, oder ein Sternchen (*), das mehrere Zeichen darstellt.

Beispiel-

14. Suchen Sie ein Bild im .webp-Format

Es hilft uns dabei, nur Dateien mit der Erweiterung .webp aus dem file.tar-Archiv zu extrahieren. Die Option -wildcards weist tar an, Platzhalter im zu extrahierenden Dateinamen zu interpretieren.

Der Name der Datei (*.webp) wird in einfache Anführungszeichen gesetzt, um den Platzhalter (*) vor einer fehlerhaften Erweiterung durch eine Shell zu schützen.

Der Befehl lautet wie folgt:

 $ tar tvf file.tar --wildcards '*.webp' 

Tar-Befehl unter Linux

Hinweis: Im obigen Befehl wird das Symbol „*“ an der Position des Dateinamens verwendet, um jede in diesem bestimmten Verzeichnis verfügbare Datei zu übernehmen.

15. Dateien aus dem TAR-Archiv löschen

Wir können die Option --delete zum Entfernen von Dateien und einem TAR-Archiv verwenden.

Der Befehl lautet wie folgt:

 $ tar --delete -f archive.tar file_name 

Beispiel:

 tar -delete -f file.tar hello1.txt 

Ausgabe:

Tar-Befehl unter Linux

hallo1.txt Datei wurde aus dem file.tar-Archiv entfernt:

Tar-Befehl unter Linux