/ / Le shell 'Cygwin' trouver '' décompresser 'semble ne pas pouvoir être filtré des lignes pour ne pas être passé à décompresser - shell, unix, rechercher

Le shell Cygwin 'find' 'unzip' ne semble pas pouvoir être filtré pour ne pas être transmis à unzip - shell, unix, find

Dans Cygwin 64bit, j'ai cette commande qui fait ce que je veux:

$ find -name "*.zip" | wc -l
90

J'essaie de passer le résultat pour décompresser, en utilisant la méthode de Trouvez toutes les zips et décompressez à la place - Unix:

$ find -name "*.zip" -execdir unzip -t "{}" ";" | wc -l
...random paths with the error continuing from "central" filename version...
17605 #?!?, why not 90 like before?

Appréciez une certaine sagesse dirigée vers ce petit problème.

Réponses:

1 pour la réponse № 1

Vous obtiendrez un compte différent car en utilisant unzip -t va tester l'extraction d'archive et listera chaque fichier à l'intérieur .zip déposer ainsi vous obtiendrez beaucoup plus de sortie plutôt que juste le nom de .zip des dossiers.

Vous avez probablement voulu dire cela find commander:

find -name "*.zip" -execdir unzip "{}" ";" -print | wc -l

0 pour la réponse № 2

Après avoir lu un peu plus la documentation pour unzip, j'ai trouvé la deuxième commande parmi les 2 suivantes qui résoudrait mon problème initial:

find -name "*.zip" -execdir unzip -t "{}" ";"  #every file in every zip
find -name "*.zip" -execdir unzip -tq "{}" ";" #one consolidated answer per zip