Às vezes, ao usar localizar, minha string de pesquisa (incidentalmente ou intencionalmente) corresponde a uma parte de um diretório. Isso faz com que tudo abaixo desse ponto no diretório seja impresso. Por exemplo:
$ locate lib
/home/myname/libImWorkingOn/libImWorkingOn.so
/lib/
/lib/modules/
/lib/firmware/
.... etc
Isso rapidamente fica fora de controle e dificulta a pesquisa.
Há uma maneira de prevenir isto? Por exemplo, imprima:
$locate lib
/home/myname/libImWorkingOn/libImWorkingOn.so
/lib/
E nada mais?
Além disso, é possível procurar um diretório e localizar apenas os diretórios?
Por exemplo (procurando pela pasta base do qemu)
Real:
$locate qemu
home/myname/qemu
home/myname/qemu/.svn
home/myname/qemu/.svn/.....
home/myname/qemu/Makefile
.....
usr/bin/qemu
.....
Desejado:
$locate (option) qemu
/home/myname/qemu
/usr/bin/qemu
Em sistemas com a
mlocate
versão delocate
, você pode limitar as correspondências usando a opção-b
ou--basename
:... o que limitaria os resultados aos arquivos cujos nomes contêm a string. No meu sistema, isso resulta em muito menos correspondências:
locate
imprime uma lista de nomes de caminhos absolutos. Você sempre pode canalizar o resultadogrep
para obter apenas nomes de arquivosou apenas nomes de diretórios
Se você fizesse isso com bastante frequência, poderia escrever um pequeno script que fizesse cada uma delas (parametrizando a "lib", é claro).
podemos limitar o número de entradas usando
-l
a opção abaixo.-w
corresponder a palavra exata-l
Sair com sucesso após encontrar a ocorrência do número que especificouOu você pode usar a
-b
opção-b
Corresponder apenas o nome base aos padrões especificados