J'ai lu beaucoup de questions et réponses comme celle-ci et celle-ci
Je sais que les caractères génériques sont développés par le shell avant d'exécuter une commande et qu'ils sont une fonctionnalité du shell. Les caractères génériques fonctionnent également avec les commandes qui peuvent accepter de nombreux arguments. En find . -name *.rb
si nous avons plus d'un fichier dans le répertoire courant find
nous donnera une erreur , car trouver ne peut pas accepter de multiples arguments et les moyens de résoudre ce sont:
find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb
Nous échappons à l'astérisque et empêchons l'expansion par le shell, mais les caractères génériques sont une caractéristique du shell; lorsque nous échappons, le shell astérisque ne connaît pas sa signification, et il devrait trouver un fichier nommé *.rb
, alors comment l'astérisque est-il développé dans ce cas?