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


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

75
2017-11-11 14:58


origine




Réponses:


Pourquoi ne pas utiliser -C option lors de la création:

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

27
2017-11-11 15:12



TMTOWTDI. Cela fonctionnerait aussi, en utilisant le même -C option;) - MikeyB
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
Nous ne pouvons pas l'utiliser lorsque quelqu'un d'autre prépare l'archive. - jww
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


Vous voulez utiliser le --strip-components=NUMBER option 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

206
2017-11-11 15:04



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
Cela a fonctionné comme un charme! Merci! - Marcello de Sales
Je suis heureux d’annoncer que cela fonctionne à la fois dans les versions GNU tar et BSD. - Nathan Osman
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
il se peut que vous manquiez encore --strip-components signaler si vous utilisez une implémentation de busybox intégrée tar, bien que. - sylvainulg