GNU tar(1)
a une option intéressante appelée --transform
. Depuis la page de manuel:
--transform, --xform EXPRESSION
utilise sed remplace EXPRESSION pour transformer les noms de fichiers
Cela permet de transformer les noms de chemin à la volée lors de l'extraction de l'archive afin que vous puissiez contrôler où et comment elle sera extraite.
Ma question est, existe-t-il un moyen d'effectuer une transformation similaire in situ ; c'est-à-dire, sans extraire l'archive?
Exemple
[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
Cas d'utilisation
Je distribue une tar
archive à des utilisateurs finaux fondamentalement ignorants et je voudrais qu'elle soit extraite dans le bon chemin sans interférence de ma part. J'essaie d'éviter la solution triviale d'extraire l'archive, de renommer les répertoires et de remballer car l'archive est trop grande.