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

stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう

stat -Lオプション|シンボリックリンクを辿って対象ファイルの情報を表示する
stat -Lオプション|シンボリックリンクを辿って対象ファイルの情報を表示する

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

生徒

「先生、statコマンドでリンクファイルの情報を見ると、リンク先じゃなくてリンクそのものの情報が表示されますよね?」

先生

「そうだね。でも、-Lオプションを使えば、リンクの先にあるファイルの情報を直接確認できるんだよ。」

生徒

「なるほど!リンクの中身をたどって、元のファイルの情報が知りたいときに便利なんですね。」

先生

「そのとおり!それではstat -Lの基本的な使い方を紹介していこう。」

1. stat -Lとは?

1. stat -Lとは?
1. stat -Lとは?

stat -Lオプションは、シンボリックリンク(symbolic link)の先にある実際のファイルの情報を表示するためのオプションです。

シンボリックリンクとは、別のファイルやディレクトリへの「案内標識」のようなもので、リンク先の場所にアクセスするための目印です。

Linuxでは、通常のstatコマンドでシンボリックリンクを指定すると、リンク自体の情報が表示されます。しかし-Lオプションを付けると、リンクの先にあるファイルの情報を直接取得できます。

2. シンボリックリンクを使った基本例

2. シンボリックリンクを使った基本例
2. シンボリックリンクを使った基本例

まず、通常のstatコマンドでシンボリックリンクの情報を表示してみましょう。


ln -s /etc/hosts mylink
stat mylink
  File: mylink -> /etc/hosts
  Size: 11        Blocks: 0          IO Block: 4096   symbolic link
Device: 802h/2050d      Inode: 1234567     Links: 1
Access: 2025-09-16 10:00:00.000000000 +0900
Modify: 2025-09-16 09:50:00.000000000 +0900
Change: 2025-09-16 09:51:00.000000000 +0900

このように、statではmylinkというリンクそのものの情報が表示されます。リンク先の中身は見られません。

次に、-Lオプションを使って、リンク先(この場合/etc/hosts)のファイル情報を表示してみましょう。


stat -L mylink
  File: /etc/hosts
  Size: 230        Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 5678901     Links: 1
Access: 2025-09-16 09:59:00.000000000 +0900
Modify: 2025-08-01 10:00:00.000000000 +0900
Change: 2025-08-01 10:01:00.000000000 +0900

このように、リンクではなくリンク先のファイルの情報を直接確認することができました。

3. statとstat -Lの違いを比較しよう

3. statとstat -Lの違いを比較しよう
3. statとstat -Lの違いを比較しよう

初心者が混乱しやすいポイントとして、「statstat -Lって何が違うの?」という疑問があります。以下のように覚えると良いでしょう:

  • stat:リンクの情報(案内標識そのもの)を表示
  • stat -L:リンク先の実際のファイルの情報を表示

つまり、ファイルの中身や実体の更新日時などを確認したい場合には-Lオプションが必要です。

4. 絶対パス・相対パスでの挙動の違い

4. 絶対パス・相対パスでの挙動の違い
4. 絶対パス・相対パスでの挙動の違い

リンクの種類には「絶対パス」と「相対パス」があり、stat -Lはどちらでも有効です。ただし、リンクが壊れている(先のファイルが存在しない)場合にはエラーになります。


ln -s /nonexistent target
stat -L target
stat: cannot statx 'target': No such file or directory

このように、リンク先が消えていたり存在しないと、stat -Lではエラーが出る点も覚えておきましょう。

5. 他のオプションとの組み合わせ

5. 他のオプションとの組み合わせ
5. 他のオプションとの組み合わせ

stat -Lは、他のオプションと組み合わせて使うことも可能です。たとえば、--formatオプションで表示内容をカスタマイズできます。


stat -L --format="%n: %s bytes" mylink
/etc/hosts: 230 bytes

このように、リンク先のファイル名とサイズだけを表示させるといった使い方もできます。スクリプト内での活用やログ用途にも便利です。

6. ls -lとの違いは?

6. ls -lとの違いは?
6. ls -lとの違いは?

ls -lコマンドでもリンクとそのリンク先の関係をある程度は確認できます。


ls -l mylink
lrwxrwxrwx 1 user user 11 Sep 16 10:00 mylink -> /etc/hosts

しかし、この情報ではファイルの詳細なサイズや最終更新日時までは確認できません。正確なファイル情報を知りたい場合にはstat -Lが適しています

まとめ

まとめ
まとめ

ここまで、stat -Lオプションの使い方を中心に、シンボリックリンクと実体ファイルの関係について丁寧に確認してきました。 Linux環境では、設定ファイルやログファイル、共有ディレクトリなどでシンボリックリンクが多用されます。 そのため、リンクそのものの情報を見たいのか、それともリンク先の実際のファイル情報を見たいのかを正しく使い分けることが、日常的な運用やトラブルシューティングではとても重要になります。

通常のstatコマンドは、シンボリックリンクを指定した場合、リンク自体のサイズや更新日時といった情報を表示します。 これは「案内標識そのもの」を調べるイメージです。一方でstat -Lを使うと、その案内標識をたどり、リンク先に存在する本物のファイルのサイズ、最終更新日時、inode番号などの詳細情報を取得できます。 ファイルの実体がいつ変更されたのか、どのくらいの容量を使っているのかを正確に知りたい場合には、-Lオプションが欠かせません。

また、壊れたシンボリックリンクに対してstat -Lを実行するとエラーになる点も、実務では重要な判断材料になります。 これは、リンク先が存在しないことを即座に検知できるため、設定ミスやファイル削除後の不整合を見つける手助けになります。 特にサーバー管理やシステム保守の現場では、「リンクは存在するが中身がない」という状態はよくあるため、stat -Lを使った確認は覚えておくと役立ちます。

さらに、--formatオプションと組み合わせることで、スクリプト向けに必要な情報だけを抽出することも可能です。 ファイルサイズだけを一覧で取得したり、ログ出力用にファイル名と更新日時だけを表示したりと、応用範囲は広がります。 単純なコマンド確認だけでなく、自動化や運用スクリプトの中でも活躍するのがstat -Lの強みと言えるでしょう。

まとめとしての確認用サンプル

最後に、リンクとリンク先の違いを改めて確認するための簡単なサンプルを見ておきましょう。 ここでは一般ユーザーとして実行しています。


ln -s /etc/hosts checklink
stat checklink
  File: checklink -> /etc/hosts
  Size: 11        Blocks: 0          IO Block: 4096   symbolic link

上記の結果では、checklinkというリンク自体の情報が表示されています。 次に、-Lオプションを付けてリンク先を確認します。


stat -L checklink
  File: /etc/hosts
  Size: 230        Blocks: 8          IO Block: 4096   regular file

このように、同じパスを指定しても、オプションの有無によって取得できる情報が大きく変わることが分かります。 この違いを理解しているかどうかで、Linuxコマンドの理解度は一段階上がると言っても過言ではありません。

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

生徒

「最初はstatstat -Lの違いがよく分からなかったんですが、 リンクそのものを見るか、リンク先の実体を見るかの違いだと考えると、かなりスッと理解できました。」

先生

「その理解で大丈夫だよ。特に設定ファイルやログ周りではシンボリックリンクが多いから、 実体ファイルの情報を確認したい場面では自然と-Lを使うようになるはずだ。」

生徒

「壊れたリンクでエラーが出るのも、トラブルの発見に使えそうですね。 何となくコマンドを打つより、意味を考えながら使えるようになった気がします。」

先生

「それが一番大切だね。コマンドの結果を見て『なぜこうなるのか』を考える習慣がつくと、 Linux操作全体の理解も自然と深まっていくよ。」

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
rm --versionオプションの使い方!Linuxでバージョン情報を確認する方法を初心者向けに解説
New2
テキスト・データ処理
grep -wオプション|単語単位で検索する使い方を初心者向けに解説!
New3
テキスト処理とフィルタ
headコマンドの使い方を完全ガイド!初心者でもわかるLinuxでファイルの先頭を表示する方法
New4
ファイル・ディレクトリ操作
mkdirコマンドの--helpオプションを完全ガイド!初心者でも分かるヘルプ表示と使い方確認
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!