Sie sollten klar erläutern, was genau vor sich geht, da Ihre derzeitige Art, die Frage zu stellen, selbst die raffinierteste Kristallkugel leicht verschwommen erscheinen lässt.
Antworten:
2
Benötigt normalerweise tardie Option --absolute-namesoder --absolute-paths, um den Stammteil '/'beim Erstellen eines Archivs beizubehalten . Auch wenn Sie es auf diese Weise zu erzwingen, überspringt der Extrakt der führende '/'zu.
Wenn Sie jedoch ein Archiv mit dem führenden haben '/'und es beim Extrahieren nicht überspringt, sollte die Antwort von NoahD in dieser Form funktionieren.
pax -r -s ',/mnt,/new/path,' -v -f 13.2.tar
Ich denke, verarbeitet paxkeine komprimierten Dateien, so dass Sie nach dem Dekomprimieren in leiten müssen pax.
Das würde so gehen (vorausgesetzt, Sie haben ein gezipptes Archiv)
Der Unterschied zwischen der Verwendung von kanonisch (auch bekannt als explizit) und relativ (was Sie wahrscheinlich als implizit bezeichnen) besteht darin, ob Sie /am Anfang ein verwenden.
Wenn sich beispielsweise das aktuelle Arbeitsverzeichnis befindet /usr/home/bob, haben die folgenden Befehle genau den gleichen Effekt
tar -xvf foo.tar *
tar -xvf ./foo.tar *
tar -xvf ./foo.tar ./*
tar -xvf /usr/home/bob/foo.tar *
tar -xvf /usr/home/bob/foo.tar ./*
tar -xvf /usr/home/bob/foo.tar / usr / home / bob / *
Aber ich vermute, dass dies nicht wirklich Ihre Frage ist. Es scheint eher so, als müssten Sie die Festplattennutzung ermitteln und ein Verzeichnis suchen, das nicht voll ist. Dies kann mit dem dfBefehl erfolgen.
df -k # space on disk in kilobytes
df -m # as above, but in meg
df -g # as above, but in gig
Und Sie können mountdamit anzeigen, welche Dateisysteme auf welchen Geräten bereitgestellt werden.
So erstellen Sie eine TAR-Datei mit einem relativen Pfad:
cd /parent/of/dir/to/tar
tar cvf subdir.tar subdir
Verwenden Sie den Schalter -C (Großbuchstabe C), um einen Teer in ein anderes Verzeichnis als das aktuelle Arbeitsverzeichnis zu entpacken.
Wenn Sie eine Datei mit absoluten Pfadnamen bis zu einem anderen Punkt als root entpacken möchten, müssen Sie möglicherweise damit herumspielen chroot(1).
Antworten:
Benötigt normalerweise
tar
die Option--absolute-names
oder--absolute-paths
, um den Stammteil'/'
beim Erstellen eines Archivs beizubehalten . Auch wenn Sie es auf diese Weise zu erzwingen, überspringt der Extrakt der führende'/'
zu.Wenn Sie jedoch ein Archiv mit dem führenden haben
'/'
und es beim Extrahieren nicht überspringt, sollte die Antwort von NoahD in dieser Form funktionieren.Ich denke, verarbeitet
pax
keine komprimierten Dateien, so dass Sie nach dem Dekomprimieren in leiten müssenpax
.Das würde so gehen (vorausgesetzt, Sie haben ein gezipptes Archiv)
Ich habe diese Wiki-Seite gerade bei Google gefunden.
quelle
Der Unterschied zwischen der Verwendung von kanonisch (auch bekannt als explizit) und relativ (was Sie wahrscheinlich als implizit bezeichnen) besteht darin, ob Sie
/
am Anfang ein verwenden.Wenn sich beispielsweise das aktuelle Arbeitsverzeichnis befindet
/usr/home/bob
, haben die folgenden Befehle genau den gleichen EffektAber ich vermute, dass dies nicht wirklich Ihre Frage ist. Es scheint eher so, als müssten Sie die Festplattennutzung ermitteln und ein Verzeichnis suchen, das nicht voll ist. Dies kann mit dem
df
Befehl erfolgen.Und Sie können
mount
damit anzeigen, welche Dateisysteme auf welchen Geräten bereitgestellt werden.quelle
So erstellen Sie eine TAR-Datei mit einem relativen Pfad:
Verwenden Sie den Schalter -C (Großbuchstabe C), um einen Teer in ein anderes Verzeichnis als das aktuelle Arbeitsverzeichnis zu entpacken.
Wenn Sie eine Datei mit absoluten Pfadnamen bis zu einem anderen Punkt als root entpacken möchten, müssen Sie möglicherweise damit herumspielen
chroot(1)
.quelle
Ich glaube, dass Pax den Trick machen wird
pax -r -s, / mnt, / gooddir, -f 13.2.tar
Sie sollten in einem neuen Stammverzeichnis ersetzen können.
quelle