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

find -xdevオプションをやさしく解説|マウントポイントを跨がずに検索する方法

find -xdevオプション|-mountと同じくマウントを跨がない検索
find -xdevオプション|-mountと同じくマウントを跨がない検索

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

生徒

「Linuxでfindコマンドを使ってファイルを探してるんですけど、外付けハードディスクの中まで検索されちゃいます。」

先生

「それはfindコマンドが、マウントされた別のファイルシステムも対象にしているからですね。」

生徒

「外付けのドライブや別のパーティションは検索したくないんです。」

先生

「そんなときは-xdevオプションを使えば、検索範囲を現在のファイルシステムの中だけに限定できますよ!」

1. findコマンドの基本と検索の仕組み

1. findコマンドの基本と検索の仕組み
1. findコマンドの基本と検索の仕組み

findコマンドは、Linuxでファイルやディレクトリを検索する標準的なコマンドです。指定したディレクトリ以下を再帰的にたどりながら、条件に一致するファイルを探します。

ただし、デフォルトではマウントされた別のファイルシステム(たとえば外付けHDDや他のパーティション)も含めて検索してしまうため、検索対象が広がり、時間もかかってしまいます。

2. -xdevオプションとは?

2. -xdevオプションとは?
2. -xdevオプションとは?

-xdevオプションは、現在のファイルシステム(デバイス)だけを検索対象にするためのオプションです。

たとえば、/直下に/mnt/usbという外付けHDDがマウントされていたとして、通常のfindではその中まで検索してしまいますが、-xdevを付けることで、/mnt/usbは無視されます。

これはシステム管理やバックアップスクリプトなどでもよく使われる重要なオプションです。

3. 基本的な使い方

3. 基本的な使い方
3. 基本的な使い方

たとえば、現在のルートディレクトリ(/)以下で.logファイルを探す場合、以下のように書きます:


find / -name "*.log" -xdev

このコマンドでは、ルートディレクトリ配下で現在のファイルシステムに限定して.logファイルを検索します。

4. -mountとの違いは?

4. -mountとの違いは?
4. -mountとの違いは?

-xdevとほぼ同じ意味で使えるのが-mountオプションです。実はこの2つは動作としては同じで、完全に同義語です。

つまり、-mountを使っても-xdevを使っても、別ファイルシステムを跨がないように検索できます。

違いは「書き方」だけです。-mountの方が読みやすいと感じる人もいれば、-xdevの方が覚えやすいという人もいます。

5. -xdevを使ったファイル検索の実例

5. -xdevを使ったファイル検索の実例
5. -xdevを使ったファイル検索の実例

例えば、/homeディレクトリで所有者が自分の.txtファイルを探したいときは、次のようにします。


find /home -xdev -user $(whoami) -name "*.txt"

このコマンドは、ホームディレクトリ以下の自分の.txtファイルだけを検索し、別パーティションがマウントされている場所には入らないという安全な使い方です。

6. -xdevの注意点と知っておくと便利な知識

6. -xdevの注意点と知っておくと便利な知識
6. -xdevの注意点と知っておくと便利な知識

一見便利な-xdevですが、ネットワークドライブや外付けストレージの中も検索したい場合には向いていません。特定のディレクトリまで検索対象にしたいときは、-xdevを外すか、検索ディレクトリを個別に指定しましょう。

また、組み合わせとしては-type-size-mtimeなどのオプションと併用することで、より柔軟な検索ができます。

例:


find /var -xdev -type f -size +10M -mtime -7

このように書くと、/var以下で10MB以上・7日以内に更新されたファイルを検索し、別ファイルシステムは対象にしません。

7. dfコマンドと組み合わせて使うとさらに便利

7. dfコマンドと組み合わせて使うとさらに便利
7. dfコマンドと組み合わせて使うとさらに便利

dfコマンドは、ファイルシステムの使用状況を表示するコマンドです。

find -xdevを使う前に、dfでどこがどのファイルシステムなのか確認しておくと、より正確な検索対象を判断できます。


df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       100G   20G   80G  20% /
/dev/sdb1       500G  300G  200G  60% /mnt/usb

この例では、/mnt/usbが別のファイルシステム(/dev/sdb1)であることがわかります。つまり、find -xdevで検索すれば、/mnt/usbはスキップされるということです。

8. まとめて練習!一緒に試してみよう

8. まとめて練習!一緒に試してみよう
8. まとめて練習!一緒に試してみよう

それでは、実際に練習してみましょう。たとえば、/etc配下にある.confファイルを現在のファイルシステム内だけで探すには、次のようにします。


find /etc -xdev -name "*.conf"

実行結果は環境によって異なりますが、以下のように表示されるかもしれません。


/etc/fstab
/etc/ssh/sshd_config
/etc/systemd/system.conf

このように、-xdevを使えば、余計な場所を検索せずに効率よくファイルを見つけることができるのです。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
テキスト処理とフィルタ
tacコマンドの基本!ファイル内容を逆順に表示する方法
New4
テキスト・データ処理
awk -fオプションの使い方を完全ガイド!初心者でもわかるLinuxテキスト処理の基本
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門