décompressez comment découper les meilleurs répertoires


13

J'ai une archive zip. La unzip -l myarchive.zipcommande donne cette liste:

top/subtop/files/1.txt
top/subtop/files2/2.txt
etc

Les dossiers racine sont supérieurs / secondaires pour tous les fichiers. Comment extraire ces fichiers sans les deux dossiers supérieurs / secondaires?

Par exemple, lorsque je suis dans le répertoire / home / myuser / public_html files/1.txtet que je dois files2/2.txtêtre extrait directement dans ce répertoire.

J'ai essayé unzip myarchive.zip top/subtop/*mais il a quand même créé des répertoires top / subtop.

Réponses:


8

Malheureusement, vous ne pouvez pas. Votre seule véritable option est de simplement les déplacer après leur extraction.


Hmm, bon à savoir. J'ai posé cette question car il y a quelques jours, lors de la création d' une archive, il ajoutait involontairement des chemins par le haut. Il y a donc eu un problème de décompression à cause des chemins d'accès supplémentaires. Cependant, je ne peux pas répéter cela aujourd'hui - aujourd'hui, cela fonctionne bien, c'est-à-dire que dans le répertoire top / subtop et en faisant zip -r files.zip *, il n'ajoute pas le chemin top / subtop comme préfixe au chemin des fichiers. Je pense que je fais exactement la même commande, mais étrangement, les résultats sont différents, il n'est donc pas nécessaire de supprimer les répertoires supérieurs lors de la décompression.
camcam

Notez qu'il est possible d'ignorer tous les répertoires (en plaçant simplement tous les fichiers les uns à côté des autres) avec unzip -j.
Skylar Ittner

4

Vous voudrez peut-être essayer la tarcommande, qui a une --strip-componentsfonctionnalité et peut fonctionner sur des fichiers zip.


2
Ne fonctionne pas avec tar (tar GNU) 1.15.1:tar: This does not look like a tar archive tar: Error exit delayed from previous errors
Kevin Panko

2
Le tar de FreeBSD peut gérer les archives ZIP. Malheureusement, d'autres implémentations tar ne sont pas aussi complètes.
Mikhail T.

1
Pour les utilisateurs de Debian, le tar de FreeBSD est disponible en tant que bsdtar (apt-get install bsdtar) si vous souhaitez utiliser tar pour extraire des fichiers zip.
Niklas B


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.