
Estou tentando pesquisar recursivamente um nome de arquivo que termine em .png. Meu comando find funciona bem para *.js, mas não para *.png.
~ >find dev -name *.png
~ >find dev -name bluerightarrow.png
dev/sandbox/ScheduleEditorTS/ScheduleEditorTS/img/bluerightarrow.png
~ >find dev -name *.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3-vsdoc.js
dev/backup/ScheduleEditorTS/packages/jQuery.2.1.3/Content/Scripts/jquery-2.1.3.js
... etc
Responder1
Você provavelmente tem um .png
arquivo em seu diretório atual e *
é expandido pelo seu shell.
Aqui está uma explicação prática. Crie um diretório chamado test
, depois outro chamado sub
dentro dele e finalmente um arquivo myfile.txt
chamado sub
. Então cd
em test
. Aqui estão os comandos para fazer isso:
~ >mkdir -p test/sub
~ >touch test/sub/myfile.txt
~ >cd test
Você pode executar find
e obterá os resultados esperados:
~/test >find sub -name *.txt
sub/myfile.txt
Agora crie um arquivo chamado cause.txt
e test
execute find
novamente:
~/test >touch cause.txt
~/test >find sub -name *.txt
Desta vez, nada foi encontrado porque o shell expande *
e seu find
comando se torna:
~/test >find sub -name cause.txt
Não há cause.txt
arquivo em sub
, portanto não há resultados.
Para evitar esse problema você deve escapar do asterisco com uma barra invertida:
~/test >find sub -name \*.txt
sub/myfile.txt