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

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つを組み合わせると、「指定した深さだけを検索」という使い方もできます。

まとめ

まとめ
まとめ

findコマンドのmindepthオプションは、Linuxにおけるファイル検索の精度と効率を高めるために非常に重要な機能です。ディレクトリ構造が複雑になりがちな開発環境やサーバー運用の現場では、すべての階層を無差別に検索してしまうと、必要のないファイルまでヒットしてしまい、結果の確認に時間がかかってしまいます。そのような場面でmindepthを活用することで、検索対象の開始位置をコントロールでき、無駄のないファイル検索を実現できます。

特にカレントディレクトリを除外したい場合や、特定の階層より深い場所だけを対象にしたい場合には、mindepthの設定が効果を発揮します。例えば、ログファイルやバックアップファイルの整理、不要ファイルの削除といった作業では、誤って重要なファイルを対象に含めてしまうリスクがありますが、mindepthを適切に設定することでそのリスクを大きく軽減できます。

また、maxdepthと組み合わせることで、特定の範囲に限定した検索も可能になります。これにより、例えば一階層目だけを対象にしたり、二階層目から三階層目だけを検索するなど、より柔軟な検索条件を構築できます。このような使い方は、ディレクトリ構造が明確に整理されているプロジェクトで特に有効です。

実際の運用では、findコマンドにtypeやnameなどの条件を組み合わせることが多く、mindepthはその中でも検索範囲を制御する基礎的かつ重要な役割を担います。例えば、特定の拡張子を持つファイルだけを探す場合や、一定期間更新されていないファイルを抽出する場合でも、mindepthを併用することで、より正確な結果を得ることができます。

以下は、mindepthを活用した実用的なサンプルです。カレントディレクトリを除外しつつ、ログファイルのみを検索する例です。


find . -mindepth 1 -type f -name "*.log"
./logs/app.log
./backup/system.log

さらに、特定の階層のみを対象にディレクトリを一覧表示する場合は、次のように指定できます。


find . -mindepth 1 -maxdepth 1 -type d
./src
./config
./public

このように、mindepthを使いこなすことで、Linuxのファイル操作はより安全かつ効率的になります。初心者のうちは少し分かりにくい概念ですが、実際にコマンドを試しながら理解を深めていくことで、自然と使いこなせるようになります。日常的なファイル管理やシステム運用の中で、ぜひ積極的に活用してみてください。

先生と生徒の振り返り会話

生徒

「mindepthって、最初は難しそうに見えましたけど、検索の開始位置を決めるだけなんですね。」

先生

「そうだね。ディレクトリの深さを意識することで、必要なファイルだけを効率よく見つけられるようになるんだ。」

生徒

「maxdepthと一緒に使うと、さらに細かく範囲を指定できるのも便利ですね。」

先生

「その通り。例えば一階層目だけを見るとか、特定の深さだけを対象にすることもできる。実務でもよく使うテクニックだよ。」

生徒

「削除コマンドと組み合わせるときも、安全に使えるのが安心です。」

先生

「うん。特にサーバー環境では誤操作が大きなトラブルにつながるから、mindepthで対象範囲をしっかり制御することが大切なんだ。」

生徒

「これからはfindコマンドを使うときに、深さも意識してみます。」

先生

「いいね。それができれば、Linuxのファイル操作はぐっとレベルアップするよ。」

関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
patch -Rオプションの使い方を完全ガイド!初心者でもわかるLinuxでパッチを元に戻す方法
New2
テキスト・データ処理
less -Xオプションの使い方を完全ガイド!終了後も画面内容を残す方法
New3
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
New4
ディスクとファイルシステム管理
dfコマンドの使い方を完全ガイド!初心者でもわかるLinuxのディスク使用量確認方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!