私のシステムには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$