Eu quero fazer um arquivo tar contendo vários arquivos espalhados pelo sistema de arquivos:
$ tar czvf outfile.tar.gz /some/file /some/other/filename
Isso cria o arquivo com êxito, mas quando eu o extraio, os arquivos ainda estão em uma árvore de diretórios que corresponde aos locais originais:
$ tar xvf outfile.tar.gz
some/file
some/other/filename
Eu gostaria de ter ambos extraídos para o diretório atual, de modo que file
e filename
sejam criados por conta própria.
Eu posso fazer isso no momento da extração usando --transform
, por exemplo:
$ tar xvf outfile.tar.gz --transform=s,.*/,,
Isso faz o que eu quero, mas é um pouco chato ter que usar uma opção obscura no tempo de extração, torna mais difícil enviar para outras pessoas, e assim por diante.
Eu poderia fazer isso em tempo de criação assim:
$ cd tmpdir
$ cp /some/file /some/other/filename .
$ tar czvf outfile.tar.gz *
Mas isso parece um pouco pesado, especialmente se houver arquivos grandes ou muitos deles.
Existe alguma maneira de controlar os nomes dos arquivos que tar
armazena diretamente no tempo de criação?