Como especificar uma pasta pai comum para arquivos tar de diferentes origens em

1

Aqui está o comando atual que estou executando:

tar --directory=/Users/joe/images -czvf images.tgz dir1/image1.jpg dir2/image2.jpg

Como você pode ver, isso está usando /Users/joe/images como o diretório raiz e, em seguida, incluindo imagens de diretórios diferentes sob essa raiz.

No entanto, preciso incluir essas imagens em um pai comum dentro do tar, de modo que, se eu fosse abrir esse arquivo tar, veria essa estrutura de diretórios:

  • common / image1.jpg
  • common / image2.jpg

Existe um sinalizador ou uma maneira de executar este comando que me permite especificar o diretório "pai" que os arquivos devem ter?

    
por AgmLauncher 12.05.2015 / 21:59

1 resposta

3

Seu --directory sugere que você esteja usando o GNU ou o moderno tar do BSD.

Com o GNU tar :

tar --directory=/Users/joe/images --transform='s|[^/]*|common|' \
  -czvf images.tgz dir1/image1.jpg dir2/image2.jpg

Com o tar do BSD:

tar --directory=/Users/joe/images -s'|[^/]*|common|' \
  -czvf images.tgz dir1/image1.jpg dir2/image2.jpg

A ideia é a mesma: substitua o componente do caminho principal por common .

Observe que essa substituição também se aplica a alvos de links simbólicos (que você pode desativar com o sinal S na substituição).

    
por 12.05.2015 / 22:47

Tags