find は階層の下にあるファイルを、名前や種類で探すコマンドです。-name での絞り込み、-type の使い分け、-maxdepth で深さを止める方法を、ブラウザ上のターミナルで打ちながら確認できます。
最終更新: 2026-09-05
find 探し始める場所 [条件]
指定した場所から下の階層を全部たどって、条件に合うものの場所を並べます。 条件を書かなければ、見つかったものが全部出ます。
このページのターミナルには、少し深いディレクトリが用意してあります。
$ find .
.
./src
./src/components
./src/components/Button.js
./src/index.js
./src/utils.js
./docs
./docs/guide.md
./logs
./logs/app.log
./README.md
./package.json
. はいまいるディレクトリのことです。
ls と違って、下の階層まで全部たどっているのが分かります。
-name に探したい名前を渡します。
* を使うときは引用符で囲みます。
$ find . -name "*.js"
./src/components/Button.js
./src/index.js
./src/utils.js
階層がばらばらでも、名前が合うものだけが並びます。
$ find . -name "*.md"
./docs/guide.md
./README.md
-type d はディレクトリだけ、-type f はファイルだけを出します。
$ find . -type d
.
./src
./src/components
./docs
./logs
探し始める場所は . でなくてもかまいません。
$ find src -type f
src/components/Button.js
src/index.js
src/utils.js
-maxdepth を付けると、そこより下へは降りません。
$ find . -maxdepth 1
.
./src
./docs
./logs
./README.md
./package.json
条件は組み合わせられます。
$ find . -name "*.js" -maxdepth 2
./src/index.js
./src/utils.js
find は、どこに置いたか分からないものを探すときに打ちます。
| 場面 | 打ち方 |
|---|---|
| 設定ファイルの場所が分からない | find . -name "*.config.js" |
| ディレクトリ構成だけ把握する | find . -type d -maxdepth 2 |
| 見つけたファイルの中身も見る | find . -name "*.log" -exec cat {} \; |
| 大文字小文字を問わず探す | find . -iname "readme*" |
* は必ず引用符で囲みます。
find . -name *.js と書くと、シェルが先に *.js を展開してしまい、意図しない結果になります。
find . -name "*.js" と囲めば、find がそのまま受け取ります。
探し始める場所を書き忘れると、全部が対象になります。
本物の環境で find / -name ... と打つと、システム全体をたどるので時間がかかります。
まずは . や src のように、範囲を狭めてから広げてください。
探しているのはファイルそのものです。
中身に何が書いてあるかで探したいときは grep を使います。
webterm.appこのサイト
ターミナル基礎
よく使うコマンドを学ぶ
learn.webterm.app別のサイト
