カテゴリ: Linuxコマンド集 更新日: 2026/01/07

find -maxdepthオプションの使い方を完全ガイド!検索するディレクトリの深さを制限する方法

find -maxdepthオプション|検索するディレクトリの深さを制限する
find -maxdepthオプション|検索するディレクトリの深さを制限する

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

生徒

「Linuxのfindコマンドって、全部のフォルダの中まで検索しちゃいますよね?」

先生

「そうだね。でも、検索する深さを制限することもできるよ。」

生徒

「えっ、深さ?フォルダの階層ってことですか?」

先生

「その通り。-maxdepthというオプションを使えば、指定した階層までだけ検索できるんだ。じゃあ、実際に使い方を見てみようか!」

1. find -maxdepthオプションとは?

1. find -maxdepthオプションとは?
1. find -maxdepthオプションとは?

-maxdepthは、findコマンドで検索するフォルダの深さ(階層)を制限するためのオプションです。Linuxで複雑なディレクトリ構造の中からファイルを探すとき、-maxdepthを使うことで、無駄に深い階層まで検索しないようにできます。

たとえば、1階層目だけを検索したいときや、2階層までに限定したいときに便利です。

2. ディレクトリの「深さ」ってなに?

2. ディレクトリの「深さ」ってなに?
2. ディレクトリの「深さ」ってなに?

Linuxのフォルダ構造(ディレクトリ構造)は、階層的になっています。例えば:

  • ~/ → 深さ0
  • ~/Documents/ → 深さ1
  • ~/Documents/Reports/ → 深さ2

このように、サブディレクトリが増えるごとに「深さ」が1つずつ増えていきます。

3. -maxdepth 1でカレントディレクトリのみ検索

3. -maxdepth 1でカレントディレクトリのみ検索
3. -maxdepth 1でカレントディレクトリのみ検索

カレントディレクトリ(今いる場所)のみを検索したいときは、-maxdepth 1を指定します。これで、サブディレクトリの中までは検索しません。


find . -maxdepth 1 -type f
./file1.txt
./script.sh

この例では、./subdir/file2.txtのようなサブディレクトリ内のファイルは検索されません。

4. -maxdepth 2で1階層下まで検索

4. -maxdepth 2で1階層下まで検索
4. -maxdepth 2で1階層下まで検索

1つ下のディレクトリ(サブディレクトリ)まで含めたい場合は、-maxdepth 2とします。


find . -maxdepth 2 -type f
./file1.txt
./subdir/file2.txt

このように、1階層下のファイルも対象になりますが、2階層以上のディレクトリは無視されます。

5. -typeと一緒に使うのが基本

5. -typeと一緒に使うのが基本
5. -typeと一緒に使うのが基本

findコマンドはファイルもフォルダも見つけてしまうため、特定の種類(ファイル・ディレクトリ)だけを対象にしたい場合は、-type f(ファイル)や-type d(ディレクトリ)を組み合わせましょう。


find ~/Documents -maxdepth 1 -type d
/home/user/Documents/folder1
/home/user/Documents/images

6. 深さを制限しない場合との違い

6. 深さを制限しない場合との違い
6. 深さを制限しない場合との違い

-maxdepthを使わない場合、findは再帰的にすべての階層を検索します。


find . -type f
./file1.txt
./subdir/file2.txt
./subdir/inner/file3.txt

このように、階層がどんなに深くても、すべてのファイルが対象になります。処理時間が長くなったり、不要な検索が行われたりするので注意しましょう。

7. 具体的な活用例:ホーム直下のファイルだけを一覧表示

7. 具体的な活用例:ホーム直下のファイルだけを一覧表示
7. 具体的な活用例:ホーム直下のファイルだけを一覧表示

自分のホームディレクトリの直下にあるファイルだけを調べたいときに便利です。


find ~ -maxdepth 1 -type f
/home/user/.bashrc
/home/user/todo.txt

サブディレクトリの中身は対象にならないため、ファイルの整理や確認がしやすくなります。

8. -maxdepthは削除やコピーと組み合わせても安全

8. -maxdepthは削除やコピーと組み合わせても安全
8. -maxdepthは削除やコピーと組み合わせても安全

-delete-execといった操作系オプションと併用することで、「誤って深い階層まで削除してしまった!」という事故を防げます。


find /tmp -maxdepth 1 -type f -name "*.tmp" -delete

このように-maxdepthで制限すれば、/tmp直下の不要ファイルだけを安全に削除できます。

9. -mindepthとの違いも知っておこう

9. -mindepthとの違いも知っておこう
9. -mindepthとの違いも知っておこう

-maxdepthは「これ以上の深さは検索しない」という指定ですが、逆に「これより浅い階層は無視したい」ときには-mindepthを使います。

たとえば、カレントディレクトリを無視して、1階層下から検索を始めたいときは:


find . -mindepth 2 -type f

-maxdepth-mindepthを組み合わせることで、特定の深さだけを対象にすることも可能です。

10. ディレクトリが多い環境ではパフォーマンス改善にも有効

10. ディレクトリが多い環境ではパフォーマンス改善にも有効
10. ディレクトリが多い環境ではパフォーマンス改善にも有効

-maxdepthを活用すれば、検索範囲を絞り込むことができ、不要な処理を省けるため、システムのパフォーマンス改善にもつながります。

特に、大量のファイルや深い階層のあるサーバー環境では、検索対象を限定することで検索スピードが向上し、ミスも減ります。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法