Procurando por arquivos * .graphml com o utilitário find

0

Eu estou tentando encontrar todos os meus arquivos GRAPHML sob o diretório atual no bash. Então eu corri o seguinte comando:

find . -name *.graphml

E recebo a mensagem de erro:

find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

O que há de errado com o comando acima? O estranho é que funciona bem para outros regexps.

    
por Otavio Macedo 03.10.2011 / 18:51

1 resposta

2

Sempre coloque o padrão entre aspas (por exemplo, *.graphml no seu caso). Caso contrário, ele será expandido pelo shell antes do comando find. Isso significa que find não recebe um literal *graphml passado, mas sim o que o shell expande *.graphml para.

Portanto:

find . -name "*.graphml*"

Veja:

  • man find que diz: "Não se esqueça de colocar o padrão entre aspas, a fim de protegê-lo da expansão pelo shell. "
  • Um pouco mais sobre Citações no Guia Avançado de Script do Bash.
por 03.10.2011 / 18:55

Tags