0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

locateのワイルドカード(暗黙で*pattern*となる。が!パターンの中にワイルドカードが含まれると)

Posted at

症状

ファイルストレージ内に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しろ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?