tar - Supprime les principaux composants du répertoire lors de l'extraction


104

Comment pouvez-vous extraire uniquement le répertoire cible et non l'arborescence complète?

compresse

tar cf /var/www/site.tar /var/www_bak/site

extrait

tar xf /var/www/site.tar -C /tmp

Cela produira:

/tmp/var/www/site

Comment est-il possible d'éviter la création de tout l'arborescence de répertoires lors de l'extraction du fichier?

Ce que je veux extraire pour:

/tmp/site

Réponses:


34

Pourquoi ne pas utiliser l' -Coption lors de la création:

$ tar cf /var/www/site.tar -C /var/www_bak/ site

1
TMTOWTDI. Cela fonctionnerait aussi, en utilisant la même -Coption;)
MikeyB

12
Il souhaite supprimer le chemin de certains composants principaux, sans modifier le répertoire de sortie. Voir ci-dessous pour la réponse correcte.
aymericbeaumet

4
Nous ne pouvons pas l'utiliser lorsque quelqu'un d'autre prépare les archives.

Parce que `` `_t = prefix - $ (date +% A% m% d); tar -cjf ".backups / $ _t.tar.bz2" --transform = "s # ^ (\ ./)? # $ _ t / # x;" -- des dossiers...; tar -df ".backups / $ _t.tar.bz2" --strip-components = 1 `` `
AnrDaemon le

258

Vous souhaitez utiliser l' --strip-components=NUMBERoption de tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

Votre commande serait:

tar xfz /var/www/site.gz --strip-components=2 -C /tmp

19
Cette réponse est préférable car vous n'avez pas à y penser avant la création de goudron. Vous pouvez l'utiliser avec un fichier tar déjà créé. Merci @MikeyB!
Fabien Quatravaux

4
Je suis heureux d’annoncer que cela fonctionne à la fois dans les versions GNU tar et BSD.
Nathan Osman

4
et parce que vous n'êtes peut-être pas le créateur de goudron ... (ou si vous le faites avec un autre outil et que cet outil fait des bêtises ...)
xenoterracide

vous risquez peut-être encore de manquer l' --strip-componentsindicateur si vous utilisez l'implémentation de busybox-embedded de tar.
Sylvainulg

1
@FabienQuatravaux Eh bien, oui --- si vous faites une erreur et créez une archive qui inclut les principaux répertoires que vous ne voulez pas voir lors de l'extraction. Mais il est plus clair de construire l'archive sans les principaux répertoires indésirables.
Calaf
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.