62 votes

Comment extraire un fichier compressé sans le dossier racine, en conservant la hiérarchie complète à l'intérieur ?

Si j'ai une archive .tar et que lorsque je l'extrait, cela me donne un seul dossier foo contenant d'autres éléments, comme ceci :

foo/
  something.txt
  another.txt
  bar/
    something-else.txt

Existe-t-il un moyen de modifier la commande .tar pour "sauter" le dossier racine (foo dans ce cas) et extraire directement tous les contenus de ce dossier dans mon répertoire de travail, comme ceci :

something.txt
another.txt
bar/
  something-else.txt

70voto

Giacomo1968 Points 48326

Facile. Il suffit d'utiliser --strip-components=1 sur l'archive comme ceci :

tar -xf archive.tar --strip-components=1

Et comme expliqué dans la tar page de manuel officielle :

--strip-components=NUMBER

supprime NUMBER de composants principaux des noms de fichiers lors de l'extraction

Avec la logique étant que si un chemin est composé de foo/something.txt alors le premier "composant" de ce chemin serait foo/ donc --strip-components=1 supprimerait efficacement le foo/ du chemin foo/something.txt.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X