GNU tar(1)
ha un'opzione ordinata chiamata --transform
. Dalla pagina man:
--transform, --xform EXPRESSION
usa sed sostitu EXPRESSION per trasformare i nomi dei file
Ciò consente la trasformazione al volo dei nomi dei percorsi mentre l'archivio viene estratto in modo da poter controllare dove e come verrà estratto.
La mia domanda è: esiste un modo per eseguire una trasformazione simile in situ ; cioè, senza estrarre l'archivio?
Esempio
[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
Caso d'uso
Sto distribuendo un tar
archivio a utenti finali sostanzialmente all'oscuro e vorrei che si estraesse nel percorso corretto senza interferenze da parte mia. Sto cercando di evitare la banale soluzione di estrarre l'archivio, rinominare le directory e reimballare in quanto l'archivio è di grandi dimensioni.