« find », comme développé dans les commentaires ci-dessous, est vraiment ce qu'il te faut. L'avantage étant que, du coup, ça fonctionne avec tous les shells.
Mais pour le reste, la boucle « for » sert précisément à faire ce qui n'est pas pris en charge par les outils eux-mêmes. Il faut savoir que quand tu écris une expression globale (man 7 glob), comme une étoile seule ou n'importe quelle expression contenant des étoiles et/ou des points d'interrogation, c'est le shell qui développe l'expression avant d'appeler la commande. Essaie par exemple « echo * », ou « echo Debut * Fin ».
Ça veut dire que la commande elle-même n'a aucun moyen de savoir a priori si tu as saisi une étoile ou si tu as manuellement entré une liste de fichiers. Cela veut dire également que ce n'est pas la commande elle-même qui fait l'analyse syntaxique des caractères jokers pour ensuite décider ou non de faire un traitement groupé. C'est juste que la plupart des commandes sont faites pour appliquer leur traitement à chacun des fichiers dont on leur passe le nom.
[^] # Re: ;
Posté par Obsidian . En réponse au message Éviter les boucles avec des syntaxes de gourou. Évalué à 7.
« find », comme développé dans les commentaires ci-dessous, est vraiment ce qu'il te faut. L'avantage étant que, du coup, ça fonctionne avec tous les shells.
Mais pour le reste, la boucle « for » sert précisément à faire ce qui n'est pas pris en charge par les outils eux-mêmes. Il faut savoir que quand tu écris une expression globale (man 7 glob), comme une étoile seule ou n'importe quelle expression contenant des étoiles et/ou des points d'interrogation, c'est le shell qui développe l'expression avant d'appeler la commande. Essaie par exemple «
echo *», ou «echo Debut * Fin».Ça veut dire que la commande elle-même n'a aucun moyen de savoir a priori si tu as saisi une étoile ou si tu as manuellement entré une liste de fichiers. Cela veut dire également que ce n'est pas la commande elle-même qui fait l'analyse syntaxique des caractères jokers pour ensuite décider ou non de faire un traitement groupé. C'est juste que la plupart des commandes sont faites pour appliquer leur traitement à chacun des fichiers dont on leur passe le nom.