Unzip plusieurs fichier

gtrgib Messages postés 544 Statut Membre -  
 eric -
Bonjour à tous,

Je voudrais déziper plusieurs fichiers en même temps et dans le même répertoire.

Mes fichiers(60) zip sont dans un répertoire, je vais dans ce répertoire et je tape "unzip *.zip" et ça ne fonctionne pas, les fichiers restent tous zipé.

J'ai le message d'erreur pour chaque fichier :

caution: filename not matched: et le nom du fichier

Merci
A voir également:

4 réponses

eric
 
Salut,

ls *zip | xargs -i unzip {}
auquel tu peux même ajouter: && rm *zip

a+

eric
7
gtrgib Messages postés 544 Statut Membre 9
 
Salut eric,

Merci beaucoup ça fonctionné parfaitement:o)

Peut tu juste m'expliquer s'il te plaît cette ligne de commande?

ls *zip>>>lister tous les fichiers zip
| xargs -i>>>>je sais pas
unzip {}>>>je sais pas pour les {}
&& rm *zip>>>>je suis pas certain pour les &&, ensuite rm *zip c'est pour effacer(remove) tous les fichiers zip.

Merci
1
asevere Messages postés 13522 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Bonsoir,

En fait la deuxieme partie de la commande est à prendre en un seul morceau!
xargs -i unzip {}
xargs lit sur l'entrée standard (la sortie du ls)
les accolades (qui necessitent -i) premettent de dire ou placer l'argument lu dans la commande, a cet endroit tu peut t'en passer, avec un commande plus colmplexe ou l'argument n'arrive pas forcement en fin de commande, ça peut-etre utile, trés utile même :)
man find, man xargs.
ça implique aussi de prendre les argument un a un, (le commutateur -n1 et donc inutile)
ls *zip| xargs -i echo {}" est un fichier zip"
ls *zip| xargs echo " est un fichier zip"
ls *zip| xargs -n1 echo " est un fichier zip"
En observant bien les sorties de ces trois commandes, tu comprendras vite ce qu'il en est! ;)
Tu pourras vite en déduire que dans le cas présent, -n1 remplacait sans soucis -i {}


Bon le rm on passe, le && est tres pratique, c'est un test logique.
cmd && echo "la commande a fonctionné"
cmd || echo "la commande n'a pas fonctionné"
Lire ET pour && et OU pour || commande 1 ET commande 2, commande 1 OU commande 2

Dans ce cas là, les fichier zip sont effacés si et seulement si la décompression s'est bien passée :)

Un exemple que j'utilises tout les jours:
Machine1# ssh Machine2 && init 0 && exit
Machine2# ssh Machine3 && init 0 && exit
Machine3# init 0 && exit
Qui a pour effet d'éteindre les trois bestioles en même temps sans que j'y ai accés
Si une des machines ne comprend pas, l'operation s'arrete, et je conserve la main sur la machine en question et sur celles se trouvant avant dans l'ordre :)

@++
 ♫ Il suffirait de presque rien...
0
gtrgib Messages postés 544 Statut Membre 9
 
Merci bien asevere pour ces informations, je garde ça.

@+
0
eric
 
Je n'ai donc plus rien à ajouter...

a+

eric
0