Pergunta

Como eu extrair um subdiretório em um arquivo tar no diretório atual?

Exemplo, o tar de wordpress :

wordpress/
wordpress/wp-trackback.php
wordpress/wp-config-sample.php
wordpress/wp-settings.php
wordpress/wp-rss2.php
wordpress/readme.html
wordpress/index.php
...

Como faço para extrair tudo sob wordpress/ no diretório atual? Em outras palavras, ele não vai criar um diretório wordpress.

Eu tentei isso sem sorte:

tar xvfz latest.tar.gz wordpress -C ./

Eu sei que posso extraí-lo normalmente e movê-lo de volta, mas eu acho que tem que haver uma maneira de fazê-lo em um tiro.

Foi útil?

Solução

Por que você não descompactar normalmente, então é só:

mv wordpress/.* .
mv wordpress/* .
rmdir wordpress

Mas, infelizmente, há:

tar --strip-components=1 -zxvf wordpress.tgz

Outras dicas

Surpreendentemente, meu tar (GNU tar v1.16) não tem uma opção para retirar elementos iniciais pathname.

No entanto, parece que as versões mais recentes ostentar um parâmetro --strip-components=number, que irá retirar que muitas compononents desde o início do caminho.

Se gosta de mim você estiver usando uma tar mais velho, e você está certo de que o arquivo não contém um diretório ou wordpress/wordpress arquivo chamado, você poderia sempre apenas uma ligação simbólica de wordpress para ., em seguida, extrair, como de costume:

ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top