Tar ist ein Befehlszeilentool zum Erstellen und Bearbeiten von Archivdateien in Linux- und Unix-Systemen. Der Tar-Befehl erstellt eine .tar-Archivdatei und komprimiert sie dann mit gzip oder bzip2.
Sie können eine einzelne archivierte komprimierte Datei mit einem Befehl erstellen, um .tar.gz-Dateien oder .tar.bz2-Dateien abzurufen. Der Tar-Befehl kann auch verwendet werden, um archivierte Dateien zu extrahieren.
Sehen wir uns den tar-Befehl anhand einiger praktischer Beispiele in Aktion an.
1) .tar-Archivdatei erstellen
Um ein unkomprimiertes tar (.tar) zu erstellen, verwenden Sie die Option -c mit dem tar-Befehl wie folgt:
$ tar -cvf /path/to/foo.tar /path/to/foo/
Wobei '/path/to/foo.tar' ist der Speicherort der resultierenden TAR-Datei, und '/path/to/foo' ist der Speicherort der Datei oder des Verzeichnisses, das als Eingabe verwendet werden soll.
Beispiel
$ tar -cvf powerlog.tar powerlog
a powerlog
$ ls
powerlog powerlog.tar
Sie können einen absoluten Pfad anstelle eines relativen verwenden, wie im Beispiel gezeigt.
2) Erstellen Sie ein .gz-Archiv mit tar
Die Befehlssyntax zum Erstellen einer .gz
Archiv mit tar ist:
$ tar -czvf /path/to/foo.tgz /path/to/foo/
Wobei „/path/to/foo.tgz“ die komprimierte Zieldatei ist und „/path/to/foo /' ist das Quellverzeichnis oder die zu komprimierende Datei.
3) Erstellen Sie ein .bz2-Archiv
Die Option -j
wird verwendet, um mit .bz2-Archiven zu arbeiten.
$ tar -cjvf /path/to/foo.tgz /path/to/foo/
4) Erstellen Sie ein .gz-Archiv und schließen Sie es aus
Wir verwenden --exclude
tar-Option, um eine bestimmte Erweiterung oder eine Liste von Dateierweiterungen auszuschließen. Die Syntax ist ähnlich wie unten:
$ tar -czvf /path/to/foo.tgz --exclude=\*.{jpg,gif,png,wmv,flv,tar.gz,zip} /path/to/foo/.
5) Verwenden Sie tar ohne absoluten Pfad auf compress
Wenn Sie tar zum Komprimieren von Dateien verwenden und einen absoluten Pfad angeben, hat eine komprimierte Datei einen vollständigen Pfad in ihren Metadaten. Wenn Sie also den Inhalt extrahieren, befindet er sich in Verzeichnissen, die dem übergebenen absoluten Pfad ähneln. Um dies zu vermeiden, fügen Sie ein hinzu. am Ende des Befehls.
$ tar -zcvf /path/to/foo.tgz -C/path/to/foo .
6) Tarieren Sie alle Dateien, die mit einem bestimmten Buchstaben beginnen
Erstellt ein tar-Archiv von allem im aktuellen Verzeichnis, beginnend mit einem 'i'.
# tar -cvf fullbackup.tar i*
install.log
install.log.syslog
7) Neue Datei an bestehendes tar-Archiv anhängen
Hängen Sie eine Datei an oder fügen Sie eine neue Datei zu einem bestehenden Tar-Archiv hinzu.
# tar --append --file=backup.tar anaconda-ks.cfg
Der obige Befehl fügt eine anaconda-ks.cfg-Datei in das backup.tar-Archiv
ein8) Hinzufügen von zwei Archivdateien mit Verkettungsoption
# tar --concatenate --file=backup.tar fullbackup.tar
Der obige Befehl fügt den Inhalt der Datei fullbackup.tar zum Archiv backup.tar hinzu.
9) Extrahieren Sie die .tar-Archivdatei
Zum Extrahieren eines unkomprimierten Archivs, das häufig die Erweiterung .tar
hat , lautet die Befehlssyntax:
$ tar -xvf /path/to/foo.tar
Wobei /path/to/foo.tar der absolute/relative Pfad zum Speicherort einer tar-Datei ist. Z. B.
$ tar -xvf powerlog.tar
x powerlog/
10) Extrahieren Sie ein .gz-Archiv
Um eine .gz
zu extrahieren Archiv verwenden wir die Befehlssyntax:
$ tar -xzvf /path/to/foo.tgz
Wobei '/path/to/foo.tgz' der absolute oder relative Pfad zur komprimierten Datei ist.
11) Extrahieren Sie ein .bz2-Archiv
Die Befehlssyntax zum Extrahieren einer .bz2
Archiv ist
$ tar -xjvf /path/to/foo.bz2
Beachten Sie, dass Sie eine .tgz-Datei übergeben können, solange sie mit einem -j
komprimiert wurde Möglichkeit. Tar erkennt das Format automatisch und dekomprimiert es.
12) Extrahieren Sie eine .tar-Datei im angegebenen Verzeichnis
Um ein tar-Archiv in ein bestimmtes Verzeichnis zu extrahieren, verwenden Sie -C
Option zum Bereitstellen des Zielverzeichnisses.
$ tar -xvf /path/to/foo.tar -C /path/to/destination/
13) Datei aus tar-Archiv extrahieren
Der folgende Befehl extrahiert die Datei „anaconda-ks.cfg“ im Archiv „backup.tar“.
# tar --extract -vv --occurrence --file=./backup.tar anaconda-ks.cfg
-rw-r--r-- root/root 766 2008-04-12 06:52:42 anaconda-ks.cfg
14) Inhalt des .gz-Archivs auflisten
Angenommen, Sie möchten nur den Inhalt einer .tgz
anzeigen Datei, ohne sie zu extrahieren, verwenden Sie die Befehlssyntax:
$ tar -ztvf /path/to/foo.tgz
Ersetzen Sie einfach '/path/to/foo.tgz' durch den korrekten Pfad Ihrer .tgz Datei
15) Inhalt der .bz2-Archivdatei auflisten
Wenn Sie nur den Inhalt von .bz2
sehen möchten archivieren, ohne zu extrahieren, verwenden Sie den Befehl:
$ tar -jtvf /path/to/foo.tgz
16) Erhalten Sie symbolische Links mit dem tar-Befehl
Verwenden Sie tar -cvhf
um meine symbolischen Links beim Generieren eines Tar-Archivs zu erhalten (benutzen Sie dafür die Option „h“).
Schlussfolgerung
Es ist schwer, sich alle Optionen des tar-Befehls zu merken. Nachfolgend finden Sie eine Liste häufig verwendeter Tar-Optionen.
- j
:Wird verwendet, um das Archiv durch bzip2 zu filtern.
- v
:Führen Sie den Befehl im ausführlichen Modus aus, um den Fortschritt der Archivdatei anzuzeigen.
- f
:Archivdateinamen angeben.
- W
:Wird verwendet, um eine Archivdatei zu überprüfen.
- z
:Filtern Sie ein Archiv mit dem gzip-Tool.
- t
:Dies wird verwendet, um den Inhalt der Archivdatei anzuzeigen.
-c
:Erstellen Sie ein neues Archiv, das die angegebenen Elemente enthält.
-r
:Wird zum Anhängen oder Aktualisieren bestehender Archive mit Dateien oder Verzeichnissen verwendet
-t
:Inhalte eines Archivs auf stdout auflisten.
-u
:Wie -r, aber neue Einträge werden nur hinzugefügt, wenn sie ein Änderungsdatum haben, das neuer ist als der entsprechende Eintrag im Archiv.
-x
:Archivdatei auf Festplatte extrahieren.
Bei allen tar-Operationen wird das Dienstprogramm mit einem 0
beendet bei Erfolg und >0
wenn ein Fehler auftritt. Es ist wichtig, dies zu verstehen, wenn Sie tar mit einem Skript verwenden.
Ich hoffe, Ihnen hat das Lesen dieses Tutorials zum tar-Befehl gefallen. Bitte hinterlassen Sie Ihre Vorschläge im Kommentarbereich unten.
Lesen Sie auch:
- So behalten Sie symbolische Links im Tar-Befehl bei