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.