Domanda

Come estrarre una sottodirectory in un tarball nella directory corrente?

Esempio, il tarball da 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
...

Come estraggo tutto sotto wordpress/ nella directory corrente? In altre parole, non creerà una wordpress directory.

Ci ho provato senza fortuna:

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

So che posso estrarlo normalmente e spostarlo indietro, ma immagino che ci debba essere un modo per farlo in un colpo solo.

È stato utile?

Soluzione

Perché non decomprimere normalmente, quindi solo:

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

Ma ahimè, c'è:

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

Altri suggerimenti

Sorprendentemente, il mio tar (GNU tar v1.16) non ha un'opzione per eliminare gli elementi del percorso iniziale.

Tuttavia, sembra che le versioni più recenti sfoggino un parametro --strip-components=number, che eliminerà molti componenti dall'inizio del percorso.

Se come me stai utilizzando un wordpress/wordpress precedente e sei sicuro che l'archivio non contenga una directory o un file denominato wordpress, puoi sempre creare un collegamento simbolico da . a <=>, quindi estrarre come al solito:

ln -s . wordpress
tar xvfz latest.tar.gz wordpress
rm wordpress
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top