症状
ファイルストレージ内にlogback_admin.xmlとlogback_customer.xmlがあるとします。
path/to/logback_admin.xml
path/to/logback_customer.xml
この時、以下のように検索するとマッチしません。(検索結果が表示されない)
$ locate "logback_*.xml"
対処
これまでも、上記みたいな感じで「うまくマッチしない(意図した結果を得られない)」ことはあったんだけど、findで代替したり、愚直にファイル名を並べたりしてたので、まじめに調べることがなかったのですが、manしたら、こんな事が書いてありました。
If any PATTERN contains no globbing characters, locate behaves as if the pattern were *PATTERN*.
「パターンに特殊文字(globbing characters)がない場合は、自動的にアスタリスク("*")で囲む」そうです。
ということは、、、特殊文字があると「自動で囲まない」ということですね。。。
ということで、パターンの先頭にアスタリスク("*")をつけることで無事に見つけることができました。
$ locate "*logback_*.xml"
path/to/logback_admin.xml
path/to/logback_customer.xml
ChatGPT様のご回答
Bashでむちゃくちゃ助けられているChatGPT様ですが、今回は以下のような回答しか得られず原因・正解を特定できませんでした。教えてあげたので、賢くなるといいな。
- updatedbしてないのでは?
- そもそもファイルがないのでは?
- バージョンや実装によって対応していないものがある
教訓
man
しろ