デジタルこどもBASEのロゴ特定非営利活動法人デジタルこどもBASE 道場トップ
第55回LV2⏱ 15〜30分

名前で探す:find

🎯 きょうのミッション

findでディレクトリの中からファイルを探します。

👉 ディレクトリの中をたどって、目的のファイル名を探し出すのが今回のゴールです。

📖 find = ディレクトリの中をたどる

grep が「ファイルの中の文字」を探すのに対し、find は ディレクトリの中のファイル名 を探します。

$ find . -name "memo.txt"
./memo.txt
./my-notes/old-memo.txt
./linux-tanken/memo.txt
↑ "memo.txt" という名前のファイルを下のフォルダ全部から探した結果

「.」は今いる場所、-name はファイル名で探すよ、というオプション。

🏁 LV2 修了チェック

第36〜55回でこんなことができるようになりました。LV3に進む前に確認しよう。

  • ☐ 絶対パスと相対パスを使い分けられる
  • ☐ find でディレクトリの中からファイルを探せる
  • ☐ grep でファイルから文字を探せる
  • ☐ head tail wc でファイルを要約できる
  • ☐ ワイルドカードを次の回で使えるようになる

全部チェックできたらLV3へ。> >> | でコマンドをつなげる強力な技を学びます。

🧠 できるようになること

  • find . -name でディレクトリの下を再帰的に探せる
  • find の役割を、結果の例から確かめられる
  • 練習用ディレクトリの中で安全に試せる

🧰 用意するもの

  • このページの「🖥 れんしゅうターミナル」(練習用ディレクトリ linux-tanken 入り)
  • キーボードで英数字と記号を入力できること

🖼 ターミナルの見本

このコマンドを実行すると、こんな結果になります(環境によって少し違うことがあります)。

📺 実行例
$ find . -name "memo.txt"
./memo.txt

⌨️ 今日のコマンド

Terminalれんしゅうターミナル
find . -name "memo.txt"

🚀 やってみよう

  1. cd ~/linux-tanken で練習場所に入ります。
  2. ls で対象のファイルがあるか確認します。
  3. find . -name "memo.txt" と入力してEnterキーを押します。
  4. 見つかったファイルの場所が ./... のようなパスで表示されます。

💡 探検ポイント

find は「ファイル名で探す」、grep は「中身で探す」。役割が違う。

🎮 チャレンジ

  • find ~ -name "*.txt" で家じゅうの.txtを探そう。linux-tankenの外にも見つかる?
  • find / -name "hostname" で、システムの設定ファイルも探せることを確かめよう。

📝 ふりかえり

  • find と grep の役割の違いを1行で言うと?
  • -name で見つかった結果は何個あった?
  • LV2 修了チェックのうち、まだ自信がないのはどれ?

❓ うまくいかないとき

  • command not found → コマンド名のスペル確認。Tab補完で打ち間違いを防げる
  • No such file or directory → ls でファイル名・パスを見直す
  • 画面が固まった → Ctrl + C でコマンドを止める
  • 画面が乱れた → clear または Ctrl + L で整理する

👨‍👩‍👧 おうちの人・先生へ

この回はLinux初級の安全な操作範囲です。困ったときの対処として「直前のコマンド」「画面に出たメッセージ」をメモしておくと、次回の質問がスムーズになります。