私のシステムには複数のJavaインストールがあり、一部はIDEによって自動的にインストールされており、そのJavaがどこにあるかを知りたいと思います。だから私は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
ポジショニングする方が良い方法かもしれませんJavaファイル名を指定します。
find . -type f -name *java*
それでも検索を有効にするには、次を使用またはlocate -b
使用できます。
locate java | grep java$