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

find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索

find -mindepthオプション|検索の最小深さを指定する
find -mindepthオプション|検索の最小深さを指定する

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

生徒

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

先生

「その通り。でも、検索の開始する深さを決めることもできるよ。」

生徒

「えっ、深さを決めるってどういうことですか?」

先生

-mindepthというオプションを使えば、ある階層より浅い場所は検索対象から除外できるんだ。詳しく見てみよう!」

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

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

-mindepthオプションは、Linuxのfindコマンドにおいて「この深さから検索を始めてほしい」と指定できる機能です。

通常のfindコマンドは、指定したディレクトリ自身(深さ0)からすべての階層を検索しますが、-mindepthを使えばカレントディレクトリは無視して、下の階層だけを検索できます。

2. ディレクトリの「深さ」の考え方

2. ディレクトリの「深さ」の考え方
2. ディレクトリの「深さ」の考え方

Linuxでは、フォルダ構造を「階層(深さ)」として数えます。例:

  • ~/(検索開始場所)→ 深さ0
  • ~/Pictures/ → 深さ1
  • ~/Pictures/Trip/ → 深さ2

-mindepthは、「何階層目から検索を開始するか」を指定できます。

3. -mindepth 1でカレントディレクトリを除外

3. -mindepth 1でカレントディレクトリを除外
3. -mindepth 1でカレントディレクトリを除外

カレントディレクトリを検索対象に含めたくないときは、-mindepth 1を使います。


find . -mindepth 1 -type f
./subdir1/file1.txt
./subdir2/file2.txt

この例では、./直下にあるファイル(例:./readme.md)は表示されません。

4. -mindepthと-maxdepthをセットで使う

4. -mindepthと-maxdepthをセットで使う
4. -mindepthと-maxdepthをセットで使う

-mindepth-maxdepthを組み合わせることで、特定の階層だけを検索できます。

たとえば、1階層目だけ(直下のフォルダだけ)を検索したいとき:


find . -mindepth 1 -maxdepth 1 -type d
./folderA
./folderB

このようにすることで、2階層以上のディレクトリは検索対象から外れます。

5. -mindepthを使って削除対象を限定する

5. -mindepthを使って削除対象を限定する
5. -mindepthを使って削除対象を限定する

findで削除するときに、-mindepthを使えばルートディレクトリやカレントディレクトリ自体を誤って削除することを防げます。


find . -mindepth 1 -type f -name "*.log" -delete

このように書くと、「ログファイルは削除するけど、カレントディレクトリの他のファイルやディレクトリは守る」ことができます。

6. サブディレクトリだけを対象に検索したいとき

6. サブディレクトリだけを対象に検索したいとき
6. サブディレクトリだけを対象に検索したいとき

カレントディレクトリを除いて、サブディレクトリ内のファイルだけを調べたいときにも便利です。


find ~/Projects -mindepth 2 -type f
/home/user/Projects/App1/src/main.java
/home/user/Projects/App2/src/index.js

この例では、Projects直下にあるファイルは無視され、さらに深い場所だけが対象になります。

7. -mindepthの数値は0からスタート

7. -mindepthの数値は0からスタート
7. -mindepthの数値は0からスタート

-mindepthに指定できる数値は、基本的に「0以上の整数」です。意味は以下の通り:

  • -mindepth 0:カレントディレクトリからすべて検索(指定なしと同じ)
  • -mindepth 1:カレントディレクトリ除外
  • -mindepth 2:2階層目から検索

深さを明確に指定することで、検索結果の精度が高まります。

8. findコマンドの処理負荷を減らす効果も

8. findコマンドの処理負荷を減らす効果も
8. findコマンドの処理負荷を減らす効果も

-mindepthを使えば、不要な浅い階層を無視できるため、検索対象が減り、処理時間の短縮にもつながります。

特に大量のファイルがある環境では、無駄な検索を避けることでシステムへの負荷を軽減できます。

9. -mindepthと他の条件の併用例

9. -mindepthと他の条件の併用例
9. -mindepthと他の条件の併用例

例えば、2階層目以降にある.bakファイルを探して削除する場合:


find . -mindepth 2 -type f -name "*.bak" -delete

このように細かく条件を組み合わせることで、安全で効率的なファイル管理が可能になります。

10. -mindepthと-maxdepthの違いを理解しよう

10. -mindepthと-maxdepthの違いを理解しよう
10. -mindepthと-maxdepthの違いを理解しよう

よく似ている-maxdepthとの違いを理解しておきましょう。

  • -mindepth:これより浅い階層は検索しない(最低深さ)
  • -maxdepth:これより深い階層は検索しない(最大深さ)

この2つを組み合わせると、「指定した深さだけを検索」という使い方もできます。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New2
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New3
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
New4
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.3
Java&Spring記事人気No3
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本