Nachdem wir nun wissen, wie man Archive erstellt und deren Inhalt anzeigt, lernen wir, wie man Dateien aus einem Archiv extrahiert. Dies ist nützlich, wenn Sie Dateien aus einer Sicherung wiederherstellen müssen oder wenn Sie ein Archiv von jemand anderem erhalten.
Um dies zu demonstrieren, simulieren wir zunächst ein Szenario, in dem unsere ursprüngliche Verzeichnisstruktur verloren gegangen ist. Wir entfernen das document_library-Verzeichnis:
rm -rf ~/project/document_library
Der rm-Befehl entfernt Dateien und Verzeichnisse, und die Optionen -rf veranlassen ihn, rekursiv zu arbeiten und die Entfernung ohne Bestätigungsaufforderung zu erzwingen. Seien Sie vorsichtig, wenn Sie diesen Befehl in der Praxis verwenden, da er Dateien dauerhaft löscht.
Lassen Sie uns überprüfen, ob das Verzeichnis entfernt wurde:
ls -la ~/project
Sie sollten document_library nicht in der Auflistung sehen, aber die Datei documents_archive.tar.gz sollte weiterhin vorhanden sein.
Jetzt extrahieren wir das Archiv, um unsere Dateien wiederherzustellen. Die grundlegende Syntax zum Extrahieren mit tar lautet:
tar [Optionen] [Archivname]
Häufige Extraktionsoptionen sind:
-x: Extrahiert Dateien aus einem Archiv
-z: Entpackt mit gzip
-v: Ausführlicher Modus (zeigt den Fortschritt an)
-f: Gibt den Dateinamen des Archivs an
-C: Wechselt in das angegebene Verzeichnis, bevor die Extraktion erfolgt
Extrahieren wir nun unser Archiv:
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project
In diesem Befehl:
-x teilt tar mit, Dateien zu extrahieren
-z teilt tar mit, das mit gzip komprimierte Archiv zu entpacken
-v aktiviert den ausführlichen Modus und zeigt die extrahierten Dateien an
-f ~/project/documents_archive.tar.gz gibt die Archivdatei an
-C ~/project teilt tar mit, die Dateien in das ~/project-Verzeichnis zu extrahieren
Sie sollten eine Ausgabe sehen, die alle extrahierten Dateien auflistet, ähnlich wie beim Erstellen des Archivs.
Lassen Sie uns überprüfen, ob unsere Verzeichnisstruktur wiederhergestellt wurde:
ls -R ~/project/document_library
Sie sollten die gleiche Verzeichnisstruktur und die gleichen Dateien sehen, die wir ursprünglich erstellt haben:
/home/labex/project/document_library:
references reports specifications
/home/labex/project/document_library/references:
guide.txt handbook.txt manual.txt
/home/labex/project/document_library/reports:
annual.txt monthly.txt quarterly.txt
/home/labex/project/document_library/specifications:
product.txt service.txt system.txt
Wenn Sie nur bestimmte Dateien aus einem Archiv extrahieren möchten, können Sie ihre Pfade nach dem Archivnamen angeben. Beispielsweise, um nur das reports-Verzeichnis zu extrahieren:
mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports
Dadurch wird nur das reports-Verzeichnis und sein Inhalt in das extracted_reports-Verzeichnis extrahiert.
Herzlichen Glückwunsch! Sie haben erfolgreich gelernt, wie man Dateien aus einem Archiv mit dem tar-Befehl extrahiert. Diese Fähigkeit ist für die Wiederherstellung von Sicherungen, die Installation von Software aus Quellcode und viele andere Linux-Operationen unerlässlich.