Porque quando você usa apenas *net*
(sem citar ou escapar), ele será expandido pelo shell como o diretório (existente) net
file / no diretório atual antes da execução do comando find
. Então o comando se torna:
find . -name net
Como você pode ver, é apenas net
, então usbnet.ko
não será correspondido.
Observe também que, sem aspas e escape, se o padrão não corresponder (e as opções nullglob
e failglob
estiverem desabilitadas), será tratado como é . Portanto, por exemplo, para find . -name *net*
, se nenhum nome de arquivo contiver net
no diretório atual, o padrão find gets será *net*
.
Então, para resolver o problema, você precisa evitar a globalização do shell, para fazer isso, você pode usar aspas ou escapar dos padrões glob:
find . -name '*net*'
find . -name "*net*"
find . -name \*net\*