Existem várias instalações de Java em meu sistema, algumas instaladas silenciosamente por IDEs, e eu queria descobrir onde elas estão. Então pensei em usá-los locate
para encontrá-los. Minha primeira tentativa de
locate java
teve vários milhares de resultados encontrados .*java.*
.
Existe uma maneira de restringir a localização para apenas encontrar arquivos com um nome exato? Não é o caminho que contém Java. Não são arquivos que contêm Java como parte de seu nome.
PS: Eu tive um problema semelhante antes, então ignore a parte Java e trate isso como um problema de localização de arquivos. Poderia muito bem ser uma questão de encontrar todas as ocorrências de gcc
.
Responder1
De man locate
:
Para procurar um arquivo com nome exato
NAME
(não*NAME*
),
uselocate -b '\NAME'
locate -b '\java'
-b
- Combine apenas o nome base com os padrões especificados.
Responder2
Com a maioria locate
das implementações:
locate '*/java'
Deveria trabalhar.
Quando o argumento não contém curingas, o argumento é considerado uma string para pesquisar nos caminhos dos arquivos.
Quando contém curingas, o curinga deve corresponder aos caminhos completos. Então aqui, qualquer caminho que termine em /java
.
Responder3
find
pode ser a melhor maneira de localizarJavaarquivos nomeados.
find . -type f -name *java*
Se você ainda quiser usar localizar você pode usar locate -b
ou você pode usar
locate java | grep java$