J'ai mis en place un script pour faire quelques opérations de fichier pour moi. J'utilise l'opérateur générique *pour appliquer des fonctions à tous les fichiers d'un type, mais il y a une chose que je ne comprends pas. Je peux unziptous les fichiers dans un dossier comme celui-ci
unzip "*".zip
Cependant, pour supprimer tous les fichiers zip par la suite, je dois faire
rm *.zip
Autrement dit, il ne veut pas les guillemets. La décompression, en revanche, ne fonctionne pas si je lui donne simplement le * (me prévient que "les fichiers ne correspondent pas").
Pourquoi est-ce différent? Pour moi, cela semble être exactement la même opération. Ou est-ce que j'utilise mal le joker?
Les introductions à la wildcard dans Unix n'entrent pas vraiment dans cela, et je ne pouvais rien localiser dans la documentation rmou zip.
J'utilise le terminal sur un Mac (Yosemite).
unzipapplique le glob au contenu d'une archive; vous ne pouvez pas les obtenir de bash avec un joker. (Vous auriez besoin de `` `` pour le f in unzip -l archive.zip; do ... done`)
                unzipaccepter les globs pour correspondre dans un fichier zip unique. Mais c'est différent. J'ai effectivement essayé unzip '*.zip'dans un répertoire avec plusieurs fichiers zip, et il extrait tous les fichiers de tous les zips. Comme je le disais, super-bizarre.  tarn'a pas de mode de fonctionnement comme ça.
                
unzipje pouvais le faire sans lafor f in *.zip;do...doneboucle de shell normale . Une interface utilisateur en ligne de commande aussi étrange que celle de type Unix.