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

stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう

stat --dereferenceオプション|-Lと同じ挙動を行う方法
stat --dereferenceオプション|-Lと同じ挙動を行う方法

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

生徒

「先生、statコマンドの-Lオプションは覚えました。でも--dereferenceっていうのもあるって聞きました。それって何ですか?」

先生

「いい質問だね。--dereferenceは、-Lと全く同じ動きをするオプションなんだ。つまり、シンボリックリンクのリンク先のファイル情報を表示するんだよ。」

生徒

「そうなんですね!じゃあ-L--dereferenceはどっちを使っても大丈夫なんですか?」

先生

「その通り!表記の仕方が違うだけで、機能は全く同じなんだ。好みに合わせて使い分けてOKだよ。」

1. stat --dereferenceとは?

1. stat --dereferenceとは?
1. stat --dereferenceとは?

Linuxのstatコマンドで--dereferenceオプションを使うと、シンボリックリンク(symbolic link)が指し示す先のファイルの情報を表示することができます。これは短縮形の-Lと全く同じ動きをします。

dereference(デリファレンス)」という言葉は、「参照を解除して中身を見る」という意味で、リンクの中身(つまりリンク先のファイル)を直接調べるという動作をします。

2. シンボリックリンクと--dereferenceの関係

2. シンボリックリンクと--dereferenceの関係
2. シンボリックリンクと--dereferenceの関係

まず、シンボリックリンクとは何かをおさらいしましょう。シンボリックリンクは、別のファイルやディレクトリへの「道しるべ」のようなものです。例えば、ある重要なファイルに別名でアクセスしたいときや、複数の場所から同じファイルを使いたいときに便利です。

statコマンドをそのままリンクに対して使うと、リンクそのものの情報しか表示されません。ですが--dereferenceを使うと、リンク先のファイルの情報を取得できます。

3. --dereferenceの基本的な使い方

3. --dereferenceの基本的な使い方
3. --dereferenceの基本的な使い方

まずは、シンボリックリンクを作ってみましょう。


ln -s /etc/passwd mylink

この状態で通常のstatコマンドを使うと、リンク自体の情報が表示されます。


stat mylink
  File: mylink -> /etc/passwd
  Size: 11        Blocks: 0          IO Block: 4096   symbolic link
Device: 802h/2050d      Inode: 1234567     Links: 1
...

では、--dereferenceを使ってリンク先のファイル情報を表示してみましょう。


stat --dereference mylink
  File: /etc/passwd
  Size: 2813       Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 2345678     Links: 1
...

このように、リンク先である/etc/passwdのファイル情報が表示されるのがわかります。

4. -Lとの違いは?

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

-L--dereferenceはまったく同じ動きをします。つまり、機能の違いはありません。

違いがあるのは表記方法だけです:

  • -L:短くて使いやすい(ショートオプション)
  • --dereference:意味が明確でスクリプトなどで見やすい(ロングオプション)

どちらを使うかは、読みやすさ書きやすさの好みで決めて大丈夫です。

5. 組み合わせて便利に使う例

5. 組み合わせて便利に使う例
5. 組み合わせて便利に使う例

--formatオプションと一緒に使うと、リンク先の特定情報だけを表示することも可能です。


stat --dereference --format="%n: %s bytes" mylink
/etc/passwd: 2813 bytes

スクリプトでログをとったり、自動化処理をするときにとても便利です。

6. 他の似たコマンドとの違い

6. 他の似たコマンドとの違い
6. 他の似たコマンドとの違い

初心者にとってはls -lコマンドとの違いも気になるところです。

ls -lはファイルやリンクの属性(パーミッション、所有者など)を表示しますが、ファイルのサイズやタイムスタンプの詳細までは出ません。


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

ls -lは見た目は分かりやすいですが、stat --dereferenceのような詳細情報は確認できません。ファイルの内容に関する正確な情報を調べたいときはstatを使いましょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
New2
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
New3
テキスト・データ処理
tail -Fオプションの使い方を完全ガイド!ログローテート後も追跡する方法
New4
テキスト・データ処理
less -Gオプションの使い方を完全ガイド!検索のハイライトを非表示にする方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本