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

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

find -followオプション|シンボリックリンクを辿って検索する
find -followオプション|シンボリックリンクを辿って検索する

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

生徒

「Linuxでfindコマンドを使ってファイルを探してたら、シンボリックリンクの中までは検索されてないみたいなんですが、どうすればいいですか?」

先生

「シンボリックリンクを辿って、そのリンク先のファイルも検索したい場合は、-followオプションを使いますよ。」

生徒

「それって、どうやって使うんですか?初心者にもわかるように教えてください!」

先生

「もちろんです。では、find -followの基本的な使い方から順番に解説していきましょう!」

1. findコマンドとは?

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

findコマンドは、Linuxでファイルやディレクトリを検索するためのコマンドです。パソコンの中を「探偵のように探し回るツール」だと思ってください。

例えば、ある名前のファイルを見つけたい、特定の日付で更新されたファイルだけを探したい、というときにとても便利です。

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

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

シンボリックリンク(symbolic link)は、別のファイルやディレクトリへの「ショートカット」のようなものです。

Windowsでいうところの「ショートカット」とほぼ同じで、リンク先の実体ファイルを指し示す特別なファイルです。

たとえば、/var/log/apacheというディレクトリにリンクされた/logs/apacheというシンボリックリンクがあったとします。このリンクは中身を持っているわけではなく、実際のファイルは/var/log/apacheにあります。

3. find -follow オプションの基本的な使い方

3. find -follow オプションの基本的な使い方
3. find -follow オプションの基本的な使い方

-followオプションを使うと、シンボリックリンクの中に入って、そのリンク先も調べてくれるようになります。

例えば、ホームディレクトリ以下でaccess.logという名前のファイルを探したい場合、シンボリックリンクを辿って探すには以下のようにします。


find ~ -follow -name "access.log"
/home/user/logs/apache/access.log

このように、リンクの中にあるファイルでも見つけられるのが-followの特徴です。

4. -followなしで検索したときとの違い

4. -followなしで検索したときとの違い
4. -followなしで検索したときとの違い

-followをつけない場合、シンボリックリンクは「ただのリンクファイル」として扱われ、中まで調べてくれません。


find ~ -name "access.log"
(出力なし)

このように、シンボリックリンクの中に本体があっても見つけられないのです。

5. 実行順序と注意点

5. 実行順序と注意点
5. 実行順序と注意点

findでは、オプションや条件の順番が検索結果に影響することがあります。-followは必ず検索ディレクトリのすぐ後に書くようにしましょう。

たとえば、以下のように書くと正しく動作しません。


find -name "access.log" -follow
find: paths must precede expression

必ず、ディレクトリ → -follow → その他の条件の順で書きましょう。

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

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

「これってシンボリックリンクかな?」と確認したいときは、ls -lコマンドを使うと良いです。


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

で矢印が表示されているものが、シンボリックリンクです。

7. -Lオプションとの違い

7. -Lオプションとの違い
7. -Lオプションとの違い

-followと似たような働きをするのが、-Lオプションです。-Lfindコマンド全体に影響を与え、「すべてのシンボリックリンクを辿る」設定になります。


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

ただし、-Lは意図しないところまでリンクを辿ってしまうこともあるので、部分的にリンクを辿りたいときは-followを使うのが安全です。

8. よく使うfind -followの組み合わせ

8. よく使うfind -followの組み合わせ
8. よく使うfind -followの組み合わせ

find -followは、他の条件と一緒に使うことで便利さが増します。以下はいくつかの使用例です。

● 拡張子が「.log」のファイルを検索(リンク先も含めて)

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

find /home/user -follow -mtime -3
/home/user/logs/apache/access.log

9. 無限ループに注意

9. 無限ループに注意
9. 無限ループに注意

-followを使うときに気をつけたいのが、「無限ループ」のリスクです。

たとえば、あるディレクトリが自分自身を指すリンクを含んでいると、findが永遠にループしてしまうことがあります。

このようなときは、-maxdepthオプションで検索の深さを制限することで回避できます。


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