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