Extrai o arquivo do diretório dentro do arquivo tar sem criar esse diretório

1

Eu tenho um arquivo tar com a seguinte estrutura:

- dir1
 -- file
- dir2
- dir3

Se eu tentar executar tar -xf tarfile.tar.gz dir1/file , dir1 contendo o arquivo será criado. Eu gostaria de obter o arquivo sem o diretório entre eles. Eu poderia mover o arquivo e excluir o diretório, mas eu queria saber se o comando tar oferece suporte para fazer isso diretamente.

Estou usando o Alpine Linux.

    
por Alberto Rivera 26.09.2016 / 19:15

2 respostas

2

POSIXly (exceto pela parte gunzip que não é um comando POSIX):

gunzip < file.tar.gz | pax -rs'|.*/||' dir1/file1

com bsdtar :

tar -s'|.*/||' -xf file.tar.gz dir1/file1

Com o GNU tar :

tar --transform='s|.*/||' -xf file.tar.gz dir1/file1

com star :

star -s '|*/||' -x -f file.tar.gz dir1/file1

Note que, para alguns deles, se o arquivo for um link simbólico, a substituição também afetará o destino do symlink.

    
por 26.09.2016 / 22:31
0

Você pode extrair para stdout (-O) e canalizá-lo para o nome do arquivo desejado.

    
por 26.09.2016 / 21:29

Tags