Primeiro, um argumento para -iname
é um padrão shell . Você pode ler mais
sobre padrões em Bash
manual . o
gist é que para que find
realmente encontre um arquivo
filename deve corresponder ao padrão especificado. Para fazer um caso insensível
string book1
match Book1.gnumeric
ou você precisa adicionar *
para que
é assim:
find / -iname 'book1*'
ou especifique o nome completo:
find / -iname 'Book1.gnumeric'
Segundo, -iname
fará com que find
ignore o caso do nome do arquivo, se você
especifique -iname book1
também pode encontrar Book1
, bOok1
etc.
Você tem certeza de que o arquivo que está procurando é chamado Book1.gnumeric
então não use -iname
mas -name
, será mais rápido:
find / -name 'Book1.gnumeric'
Em terceiro lugar, lembre-se de citar o padrão, como dito no outro responder .
E por último - você tem certeza de que quer procurar pelo arquivo
em todos os lugares no seu sistema? É possível que o arquivo que você está
procurando está na sua pasta $HOME
se você trabalhou
isso ou baixei de algum lugar. Mais uma vez, isso pode ser muito mais rápido.
EDITAR :
Notei que você editou sua pergunta. Se você não sabe o nome completo do arquivo, a letra maiúscula e o local, você deve usar algo assim:
find / -iname 'book1*'
Sugiro também colocar 2>/dev/null
no final da linha para ocultar
todos os *permission denied*
e outros erros que estarão presentes se você invocar find
como um usuário não raiz:
find / -iname 'book1*' 2>/dev/null
E se tiver certeza de que está procurando um único arquivo, e houver apenas um único arquivo no sistema correspondente
os critérios que você pode dizer a find
para sair depois de encontrar o primeiro arquivo correspondente:
find / -iname 'book1*' -print -quit 2>/dev/null