O padrão dado a -name
precisa corresponder ao inteiro nome de arquivo base . O comportamento do padrão -name
é definido como:
The primary shall evaluate as true if the basename of the current pathname matches pattern
Isso é verdadeiro quando o nome da base corresponde ao padrão que você deu . Você pode pensar em um padrão basicamente como um shell glob: você pode usar os padrões *
, ?
e [...]
dentro dele, com o início e o fim do padrão alinhados com o início e o final da sequência .
Então, seu comando:
find ~ -name bookmarks
localiza arquivos com o nome "bookmarks" porque esse é o nome do arquivo inteiro, mas:
find ~ -name bookmark
só encontraria arquivos com o nome 'bookmark', porque não há caracteres curinga no padrão.
Para corresponder aos arquivos chamados bookmark
e bookmarks
, você pode usar:
find ~ -name 'bookmark*'
Então, se você quiser encontrar
those files whose names contain bookmark regardless the position of bookmark in the filename
você pode usar:
find ~ -name '*bookmark*'
para corresponder arquivos cujos nomes tenham qualquer número de caracteres e, em seguida, bookmark
e, em seguida, qualquer número de caracteres.