如何使用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$

相關內容