大文字・小文字を区別せずファイルを検索したい

findコマンドの-nameオプションは、大文字・小文字を区別してファイル名を検索する。README.mdreadme.txtのように表記が揺れているファイルをまとめて検索したい場合、-inameオプションを使う。

-name は大文字・小文字を区別する

以下のようにREADME.mdreadme.txtReadMe.MDという3つのファイルがあるディレクトリで、-nameを使って検索する。

$ ls
README.md  ReadMe.MD  readme.txt

$ find . -name 'readme*'
./readme.txt

小文字のreadmeで始まるファイルのみがヒットし、README.mdReadMe.MDは検索結果に含まれない。

-iname は大文字・小文字を区別しない

同じディレクトリで-inameを使うと、大文字・小文字の違いを無視してマッチする。

$ find . -iname 'readme*'
./README.md
./readme.txt
./ReadMe.MD

3つのファイルすべてがヒットする。

用途

-inameは以下のような場面で役立つ。

  • ファイル名の大文字・小文字の表記が統一されていない環境で、検索漏れを防ぎたい場合
  • .JPG.jpgのように拡張子の大文字・小文字が混在するファイルをまとめて検索したい場合