O GNU tar(1)
tem uma opção elegante chamada --transform
. Na página do manual:
--transform, --xform EXPRESSION
usa sed replace EXPRESSION para transformar nomes de arquivos
Isso permite a transformação de nomes de caminhos em tempo real à medida que o arquivo está sendo extraído, para que você possa controlar onde e como será extraído.
Minha pergunta é: existe uma maneira de realizar uma transformação semelhante in situ ; ou seja, sem extrair o arquivo?
Exemplo
[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 de uso
Estou distribuindo um tar
arquivo para usuários finais basicamente sem noção e gostaria que ele fosse extraído no caminho correto sem interferência de mim. Estou tentando evitar a solução trivial de extrair o arquivo morto, renomear os diretórios e reembalar, pois o arquivo é amplo.