locate
é muito versátil pode usar -r e um padrão regexp, para que você possa fazer muitas correspondências sofisticadas. Por exemplo, para corresponder aos diretórios a
a0
a1
e assim por diante use '/a[0-9]*/'
. Isso mostrará apenas diretórios com arquivos, já que você precisa do segundo /
no caminho. Para corresponder apenas ao diretório, use $
para ancorar o padrão ao final do caminho, '/a[0-9]*$'
.
Observe que há pelo menos duas versões do comando locate
, uma de GNU , e um do Redhat (conhecido como mlocate). Use --version
para descobrir o que você tem. Eles diferem ligeiramente no estilo regex. Por exemplo, se alterarmos o padrão '/a[0-9]*$'
acima para usar +
em vez de *
para evitar corresponder a
sozinho, então mlocate precisa de \+
e gnu apenas +
.
Por exemplo, para corresponder a um diretório a
e todos abaixo dele, você pode usar para ambas as versões
locate -r '/a\(/\|$\)'
Para mlocate, você pode prefexar --regex
, que usa a sintaxe estendida
locate --regex '/a(/|$)'
Para fazer o mesmo para o gnu locate você precisaria adicionar a opção --regextype egrep
, por exemplo.