Comment décompresser une archive sans le dossier racine, mais en gardant la hiérarchie complète à l'intérieur?


25

Si j'ai une .tararchive et que je l'extrait, cela me donne un seul dossier foocontenant plus de choses, comme ceci:

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

Existe-t-il un moyen de modifier la .tarcommande pour «ignorer» le dossier racine ( foodans ce cas) et simplement extraire tout le contenu de ce dossier directement dans mon cwd comme ceci:

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

Réponses:


29

Facile. Utilisez simplement --strip-components=1sur l'archive comme ceci:

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

Et comme expliqué dans la tarpage de manuel officielle:

--strip-components = NUMBER

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

La logique étant que si un chemin se compose foo/something.txtalors le premier «composant» de ce chemin le serait de foo/manière à --strip-components=1laisser tomber foo/le chemin du chemin foo/something.txt.

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.