GNU tar(1)
hat eine nette Option namens --transform
. Von der Manpage:
--transform, --xform EXPRESSION
Verwenden Sie sed replace EXPRESSION, um Dateinamen zu transformieren
Dies ermöglicht die Transformation von Pfadnamen im laufenden Betrieb, während das Archiv extrahiert wird, sodass Sie steuern können, wo und wie es extrahiert wird.
Meine Frage ist, gibt es eine Möglichkeit , eine ähnliche Transformation durchzuführen in situ ; dh ohne das Archiv zu extrahieren?
Beispiel
[user@host]$ tar tf test.tar
./foo/blah ./foo/bleh
[user@host]$ some_deep_magic 's/foo/bar/' test.tar
[user@host]$ tar tf test.tar
./bar/blah ./bar/bleh
Anwendungsfall
Ich verteile ein tar
Archiv an grundsätzlich ahnungslose Endbenutzer und möchte, dass es ohne meine Einmischung in den richtigen Pfad extrahiert wird. Ich versuche, die triviale Lösung zu vermeiden, das Archiv zu extrahieren, die Verzeichnisse umzubenennen und neu zu packen, da das Archiv umfangreich ist.