Sem nenhuma citação, *.txt está sujeito a expansão do nome do caminho (também conhecido como expansão de nome de arquivo) . Isso acontece no diretório de trabalho atual (CWD). Se o CWD contiver quaisquer arquivos com extensão 'txt', antes de chamar find , o shell substitui o parâmetro *.txt pelos nomes de arquivos correspondentes e seu comando se torna algo assim:
find /tmp -type f -name file1.txt file2.txt file3.txt ...
Existem pelo menos três resultados que você pode obter dependendo se a expansão retorna ...
- ... vários arquivos: você receberá um erro
-
... um arquivo e seu nome correspondem a um nome de arquivo no (s) caminho (s) em que você está executando
find: o-nameteste corresponderá a apenas esse arquivo -
... um arquivo e não corresponde a nenhum arquivo no (s) caminho (s) pesquisado (s):
-namenão corresponderá a nada
Por outro lado, se o CWD não contiver quaisquer arquivos txt, então *.txt será passado para find e se comportará exatamente como se você o tivesse citado.
Moral: ao usar find , sempre coloque aspas em torno dos padrões que contêm globs, a menos que você realmente deseje que a expansão do nome de caminho ocorra (raramente você veria isso feito intencionalmente para a opção -name ).