Se você tiver um arquivo no diretório atual que termina com .rb
, ele será expandido pelo shell. Portanto, se você tiver um arquivo chamado "foo.rb", o comando executado será find . -name foo.rb
. ("encontrar um arquivo chamado foo.rb")
Ele fica ainda pior se você tiver vários arquivos no diretório atual (digamos, "foo.rb" e "bar.rb"). Então o comando se torna find . -name foo.rb bar.rb
, o que causará um erro de argumento para encontrar.
Para evitar que o shell expanere o padrão de glob *.rb
, você deve citá-lo (aspas simples ou duplas servirão) ou sair do asterisco. Os comandos abaixo têm um comportamento equivalente:
find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb