Ich verwende diesen Befehl auf einem5 GBArchiv
tar -zxvf archive.tar.gz /folder/in/archive
ist das die richtige Vorgehensweise? Es scheint ewig zu dauern, ohne dass eine Befehlszeilenausgabe erfolgt ...
Antwort1
tar
speichert relative Pfadestandardmäßig. GNU Tar sagt dies sogar, wenn Sie versuchen, einen absoluten Pfad zu speichern:
tar -cf foo.tar /home/foo
tar: Removing leading `/' from member names
Wenn Sie einen bestimmten Ordner extrahieren müssen, sehen Sie sich den Inhalt der TAR-Datei an:
tar -tvf foo.tar
Und notieren Sie sich den genauen Dateinamen. Im Fall meiner foo.tar
Datei könnte ich sie extrahieren, /home/foo/bar
indem ich sage:
tar -xvf foo.tar home/foo/bar # Note: no leading slash
Also nein, die Art, wie Sie es gepostet haben, ist (nicht unbedingt) die richtige Vorgehensweise. Sie müssen den führenden Schrägstrich weglassen. Wenn Sie absolute Pfade simulieren möchten, tun Sie dies cd /
zuerst und stellen Sie sicher, dass Sie der Superuser sind. Das Folgende hat auch denselben Effekt:
tar -C / -xvf foo.tar home/foo/bar # -C is the ‘change directory’ option
Es gibt sehr offensichtliche und gute Gründe, warum tar
Pfade in relative Pfade umgewandelt werden. Einer davon ist die Möglichkeit, ein Archiv an anderen Orten als der Originalquelle wiederherzustellen. Der andere Grund ist die Sicherheit. Sie könnten ein Archiv extrahieren, erwarten, dass seine Dateien in Ihrem aktuellen Arbeitsverzeichnis angezeigt werden, und stattdessen versehentlich Systemdateien (oder Ihre eigene Arbeit) an anderer Stelle überschreiben.
Hinweis: Wenn Sie die -P
Option verwenden,tar
Willeabsolute Pfade archivieren. Es lohnt sich also immer, den Inhalt großer Archive vor dem Entpacken zu prüfen.