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

find -Lオプションの使い方|シンボリックリンクを常に辿って検索する方法を初心者向けに解説!

find -Lオプション|シンボリックリンクを常に辿る検索
find -Lオプション|シンボリックリンクを常に辿る検索

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

生徒

「findコマンドでファイルを探してるんですけど、シンボリックリンクの中まで検索されてない気がします。リンク先も含めて調べるにはどうしたらいいですか?」

先生

「そんなときには-Lオプションを使えば、常にリンクの中身も含めて検索できますよ。」

生徒

-Lっていうのは、どんな意味なんですか?」

先生

-Lは『リンク(Link)をたどる』という意味で、findコマンドにリンク先まで見に行くよう指示するオプションです。では、詳しく見ていきましょう。」

1. findコマンドとは?

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

findコマンドは、Linuxでファイルやディレクトリを条件に合わせて検索できる強力なツールです。指定したフォルダの中から「名前」「種類」「更新日」などの条件でファイルを探すことができます。

たとえば、「名前にlogがついているファイル」や「最近更新されたファイル」なども簡単に見つけることができます。

2. シンボリックリンクとは?

2. シンボリックリンクとは?
2. シンボリックリンクとは?

シンボリックリンク(symbolic link)とは、あるファイルやディレクトリを指し示す「案内板」のような存在です。

たとえば、/logs/apacheというリンクがあって、それが/var/log/apache2という実体を指している場合、/logs/apacheを通じて中身を見ることができますが、本体は別の場所にあるわけです。

3. find -Lオプションとは?

3. find -Lオプションとは?
3. find -Lオプションとは?

find -Lオプションは、検索時にシンボリックリンクを常に辿ってリンク先のファイルやディレクトリも含めて調べるためのオプションです。

つまり、リンク先の実体ファイルも検索の対象になります。

以下のように使います:


find -L /home/user -name "error.log"
/home/user/logs/apache/error.log

この例では、/home/user/logs/apacheがシンボリックリンクでも、リンク先にerror.logがあればちゃんと見つけてくれます。

4. -Lと-followの違い

4. -Lと-followの違い
4. -Lと-followの違い

-Lとよく似たオプションに-followがあります。両者の違いは以下のとおりです:

  • -L:findの実行中ずっと、すべてのシンボリックリンクを辿る
  • -follow:検索対象のリンクが見つかったときだけ、そのリンクを辿る

広範囲にリンク先も含めて検索したいときは-L、限定的にリンクを辿りたいときは-followがおすすめです。

5. -Lのよくある使い方

5. -Lのよくある使い方
5. -Lのよくある使い方

シンボリックリンクを多用しているシステムでは、-Lを使うことで漏れなく検索できます。

● 名前で検索(リンク先も含めて)

find -L /var/www -name "*.log"
/var/www/logs/access.log
● 更新日が7日以内のファイルを検索(リンク先も含めて)

find -L /home/user -mtime -7
/home/user/logs/nginx/access.log

6. 無限ループに注意しよう

6. 無限ループに注意しよう
6. 無限ループに注意しよう

-Lを使うと、リンクがリンクを辿るような循環構造になっていると、無限ループに陥る可能性があります。

たとえば、/dir1から/dir2へ、/dir2から再び/dir1へのリンクがある場合、findは永遠に回り続けてしまいます。

これを防ぐには、-maxdepthで深さを制限したり、-typeでファイルの種類を絞ると安全です。


find -L / -maxdepth 5 -name "*.log"

7. -Lと使えるオプションの組み合わせ

7. -Lと使えるオプションの組み合わせ
7. -Lと使えるオプションの組み合わせ

-Lは他のオプションとも組み合わせて使えます。

● ファイル名・種類を同時に指定

find -L /home/user -type f -name "*.conf"
/home/user/config/httpd.conf
● ファイルサイズで絞り込み

find -L /var/log -size +1M
/var/log/old_logs/bigfile.log

8. シンボリックリンクの確認方法

8. シンボリックリンクの確認方法
8. シンボリックリンクの確認方法

「これはリンクかな?」と思ったときはls -lで確認しましょう。


ls -l /home/user/logs
lrwxrwxrwx 1 user user 20 Sep 15 12:00 apache -> /var/log/apache2

矢印でリンク先が表示されていれば、シンボリックリンクです。

9. -Hや-Pとの違い

9. -Hや-Pとの違い
9. -Hや-Pとの違い

実はfindには-Lの他にも、-H-Pというオプションがあります。

  • -L:すべてのリンクを辿る(今回の記事の主役)
  • -H:コマンドライン引数にあるリンクだけ辿る
  • -P:リンクを一切辿らない(デフォルト動作)

通常は-Pの動作なので、リンク先まで検索したいときは明示的に-Lをつけましょう。

関連記事:
カテゴリの一覧へ
新着記事
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コマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!