確認のみファイル・文字の検索

find:名前でファイルを探したい

このページでできること

find で現在地と配下のフォルダを検索し、名前が memo.txt と一致する通常ファイルを表示します。

コマンド例

find . -type f -name 'memo.txt'

ツリー図で見る操作対象

理解のための模式図です。実際の端末画面ではありません。末尾の / はフォルダ、[現在地] はコマンドを実行する場所です。枝線は親子関係を表します。

対象のフォルダ構造(実行前後で変更なし)
work/ [現在地]
├── archive/
│   └── memo.txt
├── images/
│   └── photo.png
├── memo.txt
└── notes.txt

「.」は現在地 work/ です。直下だけでなく archive/ の中にも進み、通常ファイルの memo.txt を探します。名前が一致したパスを表示し、構造は変更しません。

この構造での検索結果

./archive/memo.txt
./memo.txt

結果の表示順は環境によって異なる場合があります。

検索条件を分けて読む

find の指定と意味
部分意味
find指定した場所から、下の階層も順に調べるコマンドです。
.検索を始める場所。ここではターミナルの現在地です。
-type f通常ファイルだけを対象にします。フォルダは結果に含めません。
-name 'memo.txt'末尾のファイル名が memo.txt と一致するものを選びます。

-name は大文字と小文字を区別します。フォルダの中身の文章ではなく、名前を調べます。引用符は、* などをターミナル側で先に展開せず find に渡すために必要です。空白を含む名前も引用符で囲みます。

大文字・小文字を区別せずに探す

find . -type f -iname 'memo.txt'

-name を -iname に変えます。memo.txt に加え、Memo.txt や MEMO.TXT という名前のファイルも対象になります。上のツリー図にないファイルは自動で作られません。

何も表示されないとき

条件に合うものがなければ何も表示されず、入力待ちに戻ります。検索開始場所、名前のつづり、大文字・小文字、ファイルとフォルダの違いを確認しましょう。エラーメッセージが出た場合は、検索が正常に完了したとは限りません。

名前でなくファイル内の文章を探す場合は、grep で文字を含む行を探す方法を参照してください。

使い方を順番に確認する練習を始めるときは、この手順に沿って進めます

使い方

  1. Linuxのターミナルを開き、pwd と ls で現在地・対象を確認します。
  2. 例に出てくるファイル名・フォルダ名を、自分の環境に合わせます。読み取り・検索・コピー・移動の対象は、実際に存在するものを指定してください。
  3. 下の注意点を読んだうえでコマンドを入力し、Enterで実行します。

実行するとどうなる?

find で現在地と配下のフォルダを検索し、名前が memo.txt と一致する通常ファイルを表示します。 このコマンド例はファイルの内容を変更しません。

注意点

「.」が検索開始場所です。大きなフォルダの検索には時間がかかります。

権限に関する注意:アクセス拒否の原因を調べずに、管理者権限や sudo で実行しないでください。

うまくいかないときに確認するエラーや想定と違う結果が出たときの確認ポイント

うまくいかないとき

「No such file or directory」が出たら、現在地・名前・大文字と小文字を確認します。「Permission denied」が出たら、自分が操作してよい場所か確認してください。原因を調べずに sudo を付けないでください。

対象環境:GNU/Linux・Bash。環境やバージョンによって表示が異なる場合があります。

公式マニュアルで詳しく確認する(英語)

同じカテゴリのコマンド

コマンド一覧に戻る