web-dev-qa-db-fra.com

Comment décompresser un sous-répertoire dans le répertoire courant?

Comment extraire un sous-répertoire d'une archive tar dans le répertoire courant?

Exemple, l'archive 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
...

Comment extraire tout sous wordpress/ dans le répertoire courant? En d'autres termes, il ne créera pas de répertoire wordpress.

J'ai essayé ça sans chance:

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

Je sais que je peux l'extraire normalement et le reculer, mais je pense qu'il doit y avoir un moyen de le faire en une seule fois.

51
Cory R. King

Pourquoi ne défaites-tu pas normalement, alors juste:

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

Mais hélas, il y a:

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

Étonnamment, mon tar (GNU tar v1.16) n'a pas d'option pour supprimer les éléments de chemin d'accès initiaux.

Cependant, il semble que les versions plus récentes arborent un --strip-components=number paramètre, qui supprimera autant de composants dès le début du chemin.

Si, comme moi, vous utilisez un ancien tar et que vous êtes certain que l'archive ne contient pas de répertoire ou de fichier nommé wordpress/wordpress, vous pouvez toujours créer un lien symbolique de wordpress vers ., puis extrayez comme d'habitude:

ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress
6
j_random_hacker