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.

camcam
la source

Réponses:

8

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

Sepero
la source
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.

Eamon
la source
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
-2
$ unzip -l myarchive.zip
$ mv top/subtop/* .

#kissPrinciple;)

Romain DEQUIDT
la source