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-name
teste corresponderá a apenas esse arquivo -
... um arquivo e não corresponde a nenhum arquivo no (s) caminho (s) pesquisado (s):
-name
nã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
).