mac encontrar -name * .png não funciona [duplicado]

2

Estou tentando pesquisar recursivamente por um nome de arquivo terminado 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 
    
por Mike Blandford 01.05.2015 / 23:55

1 resposta

3

Você provavelmente tem um arquivo .png em seu diretório atual e o * é expandido pelo seu shell.

Aqui está uma explicação prática. Crie um diretório chamado test , depois outro chamado sub e, finalmente, um arquivo chamado myfile.txt in sub . Então cd into 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 in test e execute find novamente:

~/test >touch cause.txt
~/test >find sub -name *.txt

Desta vez nada é encontrado porque o shell expande o comando * e o seu comando find se torna:

~/test >find sub -name cause.txt

Não há nenhum arquivo cause.txt em sub , então não há resultados.

Para evitar esse problema, você precisa escapar do asterisco com uma barra invertida:

~/test >find sub -name \*.txt
sub/myfile.txt
    
por 02.05.2015 / 00:10