名前で探す: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でファイルから文字を探せる - ☐
headtailwcでファイルを要約できる - ☐ ワイルドカードを次の回で使えるようになる
全部チェックできたらLV3へ。> >> | でコマンドをつなげる強力な技を学びます。
🧠 できるようになること
find . -nameでディレクトリの下を再帰的に探せるfindの役割を、結果の例から確かめられる- 練習用ディレクトリの中で安全に試せる
🧰 用意するもの
- このページの「🖥 れんしゅうターミナル」(練習用ディレクトリ
linux-tanken入り) - キーボードで英数字と記号を入力できること
🖼 ターミナルの見本
このコマンドを実行すると、こんな結果になります(環境によって少し違うことがあります)。
📺 実行例
$ find . -name "memo.txt" ./memo.txt
⌨️ 今日のコマンド
Terminalれんしゅうターミナル
find . -name "memo.txt"🚀 やってみよう
cd ~/linux-tankenで練習場所に入ります。lsで対象のファイルがあるか確認します。find . -name "memo.txt"と入力してEnterキーを押します。- 見つかったファイルの場所が
./...のようなパスで表示されます。
💡 探検ポイント
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初級の安全な操作範囲です。困ったときの対処として「直前のコマンド」「画面に出たメッセージ」をメモしておくと、次回の質問がスムーズになります。
