カテゴリ: Linux 更新日: 2026/02/22

findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本

Linux初心者は何から始める?学習の全体像を解説
Linux初心者は何から始める?学習の全体像を解説

先生と生徒の会話形式で理解しよう

生徒

「Linuxでファイルを探したいときって、どうすればいいですか?」

先生

「Linuxではfindコマンドを使うことで、ファイルやディレクトリを検索できますよ。」

生徒

「それって難しい操作じゃないですか?初心者でも使えますか?」

先生

「大丈夫!簡単な例から説明していきます。一緒に覚えていきましょう。」

1. findコマンドとは?

1. findコマンドとは?
1. findコマンドとは?

findコマンドは、Linuxでファイルやディレクトリを探すための基本的なコマンドです。「どこに保存したかわからないファイルを見つけたい」「特定の名前をもつファイルを探したい」「最近更新されたファイルだけを探したい」といったときに非常に役立ちます。

Windowsの「検索ボックス」のようなイメージですが、findはターミナル(黒い画面)で使う文字だけの命令です。その代わり、とても速くて正確です。パソコンの操作に慣れていない方でも、一度書き方を覚えてしまえば、膨大なデータの中から一瞬で目的のものを探し出せるようになります。

Linuxの世界では、マウスでカチカチとフォルダを開いていくよりも、このようにコマンドを打ち込んで操作するほうが効率的な場面が多々あります。その第一歩として、このファイル検索をマスターすることは非常に価値があります。

2. 基本の書き方

2. 基本の書き方
2. 基本の書き方

findコマンドの基本的な書き方は、以下のようになります。


find [検索する場所] [検索条件]

たとえば、「現在のフォルダから名前がmemo.txtのファイルを探す」場合は、以下のようになります。


find . -name "memo.txt"
./Documents/memo.txt

ここで.は「今いる場所(カレントディレクトリ)」を意味します。-nameは「名前で検索する」という意味のオプションです。このように、「どこで」「何を」探すのかを順番に指定していくのが基本のルールです。

3. ワイルドカードを使った曖昧な検索

3. ワイルドカードを使った曖昧な検索
3. ワイルドカードを使った曖昧な検索

ファイル名が正確に思い出せないこともありますよね。そんな時は「ワイルドカード」という便利な記号を使います。アスタリスク(*)を使うと、「〜で始まるファイル」や「〜という文字が含まれるファイル」をすべて探し出すことができます。

例えば、拡張子が.jpgの画像ファイルだけをすべて探したい場合は、次のように入力します。これにより、デジカメで撮った写真やダウンロードした画像を一気にリストアップできます。


find . -name "*.jpg"
./Pictures/ocean.jpg
./Pictures/mountain.jpg
./Downloads/profile.jpg

このように、*は「どんな文字が入ってもいいよ」という意味になります。初心者の方は、まずこの-name*の組み合わせを覚えるだけでも、日常の作業がぐっと楽になるはずです。特定のキーワードを含む資料を探す際などに重宝します。

4. ファイルの種類で絞り込む(-type)

4. ファイルの種類で絞り込む(-type)
4. ファイルの種類で絞り込む(-type)

Linuxには「ファイル」と「ディレクトリ(フォルダ)」の区別があります。名前が同じでも、それがファイルなのかフォルダなのかをはっきりさせて検索したい場合があります。そんな時に使うのが-typeオプションです。

ファイルを探したいときはf、ディレクトリを探したいときはdを指定します。これにより、余計な検索結果を省いて、より正確に目的のものにたどり着くことができます。パソコン初心者の方は、「fはfile(ファイル)の頭文字」「dはdirectory(ディレクトリ)の頭文字」と覚えると忘れにくいですよ。


find . -type d -name "backup"
./work/backup

上記の例では、名前が「backup」という「ディレクトリ」だけを表示しています。もし同じ名前にテキストファイルがあっても、それは無視されるので非常に効率的です。

5. ファイルの大きさで検索する(-size)

5. ファイルの大きさで検索する(-size)
5. ファイルの大きさで検索する(-size)

「パソコンの容量がいっぱいになってきたから、大きなファイルを見つけて消したい」と思ったことはありませんか?findコマンドを使えば、特定のサイズ以上のファイルだけを見つけることも簡単です。

サイズの指定には、メガバイト(M)やギガバイト(G)といった単位を使います。例えば、100MBより大きいファイルを検索する場合は、-size +100Mのように書きます。プラス記号は「それ以上」、マイナス記号なら「それ以下」という意味になります。大きな動画ファイルなどを整理したい時に非常に便利なテクニックです。


find /home/user/Videos -size +500M
/home/user/Videos/movie_01.mp4

このように、特定の場所を指定して大きなファイルを探し出すことができます。システム全体の掃除をしたい時など、管理者権限が必要な場所を探す際にも応用されます。

6. 更新日時でファイルを探す(-mtime)

6. 更新日時でファイルを探す(-mtime)
6. 更新日時でファイルを探す(-mtime)

「昨日編集したはずのファイル、どこに置いたかな?」という時に役立つのが-mtimeオプションです。これは「最後に内容を変更した日」を基準に検索を行います。数字の指定方法が少し特殊で、0なら24時間以内、1なら1日から2日前という意味になります。

特に最近作業したファイルだけを絞り込みたい時に強力な力を発揮します。多くのファイルが混ざっているプロジェクトフォルダの中から、直近で修正したソースコードやレポートを見つけ出すのに最適です。また、古いログファイルを抽出して整理する際にも使われます。


find . -mtime -1
./report.docx
./notes.txt

このコマンドは、過去1日以内(24時間以内)に更新されたファイルを現在の場所から探し出します。急いで作業の続きをしたい時に非常に重宝する機能と言えるでしょう。

7. 管理者権限でシステム全体を検索する

7. 管理者権限でシステム全体を検索する
7. 管理者権限でシステム全体を検索する

通常、自分の作成したファイル以外の場所(システムの設定ファイルなど)を検索しようとすると、権限がないためエラーが表示されることがあります。Linuxには「ルートユーザー」という、すべての操作を許可された特別な管理者が存在します。

システム全体から特定の重要な設定ファイルを探す場合などは、sudoというコマンドを先頭につけて実行します。これにより、普段は見ることができない重要な場所まで探しに行くことが可能になります。ただし、重要なファイルを誤って操作しないよう、慎重に行う必要があります。


find /etc -name "ssh_config"
/etc/ssh/ssh_config

この例では、システムの中心部である/etcフォルダの中から設定ファイルを探しています。管理者として操作していることを示すため、ターミナルの表示が変わっている点に注目してください。プログラミングやサーバー構築を学ぶ過程で、必ず必要になる操作の一つです。

8. 検索結果に対して操作を行う(-exec)

8. 検索結果に対して操作を行う(-exec)
8. 検索結果に対して操作を行う(-exec)

findコマンドの本当の凄さは、見つけたファイルに対してそのまま次の命令を実行できる点にあります。例えば、「見つけた古いファイルをすべて削除する」といった一連の流れを一つのコマンドで完結させることができます。これを実現するのが-execオプションです。

初心者の方には少し複雑に見えるかもしれませんが、定型文として覚えておくと非常に強力です。見つかったファイルを一つずつ手作業で処理する手間が省けるため、プロのエンジニアも頻繁に利用します。自動化への第一歩として、この仕組みを知っておくだけでも世界が変わります。


find . -name "*.log" -exec rm {} \;

このコマンドは、拡張子が.logであるファイルをすべて探し、それらを削除(rm)するという指示です。{}の部分に見つかったファイル名が順番に入り、\;で命令の終わりを伝えます。大量の不要ファイルを一瞬で片付けたい時に魔法のような効果を発揮します。

9. locateコマンドとの違い

9. locateコマンドとの違い
9. locateコマンドとの違い

Linuxには、ファイルを探すもう一つの方法としてlocateコマンドがあります。findは「今、実際にファイルを探しに行く」のに対し、locateは「あらかじめ作っておいたファイルリストのデータベースから探す」という違いがあります。

locateはデータベースを見るだけなので一瞬で結果が出ますが、新しく作ったばかりのファイルは見つけられないという弱点があります。一方でfindは、実行したその瞬間の最新の状態を反映してくれます。そのため、正確性を求めるならfind、速さを求めるならlocateという使い分けが一般的です。

初心者の方は、まずは汎用性が高く、どんな状況でも確実にファイルを見つけられるfindコマンドを使いこなせるようになることをおすすめします。パソコンの構造を理解する上でも、実際にフォルダを辿って探してくれるfindの仕組みを学ぶことは非常に有益です。

カテゴリの一覧へ
新着記事
New1
RDS(データベース)
AWS RDSのメンテナンスウィンドウの設定方法を解説!初心者でもできるクラウドデータベースの管理
New2
Direct Connect(専用線接続)
AWS Direct Connectのルーティング設計(BGP設定の基本)を初心者向けにやさしく解説
New3
S3(オブジェクトストレージ)
AWS S3のデータ保護(オブジェクトロック・WORM設定)を初心者向けにやさしく解説
New4
ファイル・ディレクトリ構造
Linuxのディレクトリ構造を徹底解説!/bin・/sbin・/usrの違いと役割を初心者向けに解明
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.3
Java&Spring記事人気No3
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.4
Java&Spring記事人気No4
プロセス・ジョブ管理
LinuxのプロセスID(PID)とは?仕組みと管理方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.6
Java&Spring記事人気No6
ファイル・ディレクトリ構造
Linuxの/homeディレクトリとは?役割と構造を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.8
Java&Spring記事人気No8
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策