如何使用locate查找文件的出现位置

如何使用locate查找文件的出现位置

我的系统上有多个 Java 安装,其中一些是由 IDE 静默安装的,我想找出它们在哪里。所以我想用locate去找他们。我的第一次尝试

locate java

发现了数千次点击.*java.*

有没有办法限制定位仅查找具有确切名称的文件?不是包含 Java 的路径。不是名称中包含 Java 的文件。

PS:我以前也遇到过类似的问题,所以请忽略Java部分并将其视为查找文件的问题。这也可能是一个查找 的所有出现的问题gcc

答案1

man locate

NAME要搜索名称准确(不是)的文件*NAME*
请使用 locate -b '\NAME'

locate -b '\java'
  • -b- 仅将基本名称与指定模式进行匹配。

答案2

对于大多数locate实现:

locate '*/java'

应该管用。

当参数不包含通配符时,参数将作为字符串在文件路径中搜索。

当它包含通配符时,通配符必须与完整路径匹配。所以在这里,任何以 . 结尾的路径/java

答案3

find可能是更好的定位方式爪哇命名文件。

find . -type f -name *java*

如果您想仍然使用locate,您可以使用locate -b或者您可以使用

locate java | grep java$

相关内容