Eu li muitas perguntas e respostas como esta e esta
Eu sei que os curingas são expandidos pelo shell antes de executar um comando e são um recurso do shell. Os curingas também funcionam com os comandos que podem aceitar muitos argumentos. Em find . -name *.rb
se tivermos mais de um arquivo no diretório atual find
nos dará um erro porque descoberta não pode aceitar vários argumentos e as maneiras de resolver este são:
find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb
Nós escapamos do asterisco e impedimos a expansão pelo shell, mas os curingas são um recurso do shell; quando escapamos, o shell do asterisco não sabe sobre o seu significado e deve encontrar um arquivo chamado *.rb
; então, como o asterisco está sendo expandido nesse caso?