カテゴリ: Linuxコマンド集 更新日: 2025/12/25

statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本

statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本

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

生徒

「Linuxでファイルの詳しい情報を確認する方法ってありますか?」

先生

「Linuxではstatコマンドを使うと、ファイルやディレクトリの詳細な情報を簡単に確認できますよ。」

生徒

「それってls -lと何が違うんですか?」

先生

「とても良い質問です。実際に使いながら、違いや基本的な使い方を見てみましょう!」

1. statコマンドとは?

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

statコマンドは、LinuxやUnix系OSでファイルやディレクトリの詳細な情報を表示するためのコマンドです。具体的には、ファイルのサイズ、更新日時、所有者、アクセス権限、iノード番号など、さまざまな情報を一括で確認できます。

ls -l」コマンドでもある程度の情報は見られますが、statコマンドの方がより詳しい情報を一覧で取得できるため、システム管理やファイルの調査にとても役立ちます。

2. 基本的な使い方

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

statコマンドの基本構文はとてもシンプルです。


stat ファイル名

例えば、「sample.txt」というファイルがある場合、その詳細を確認するには以下のように入力します。


stat sample.txt
  File: sample.txt
  Size: 1024       Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d Inode: 131074      Links: 1
Access: 2025-09-15 10:00:00.000000000 +0900
Modify: 2025-09-14 18:30:00.000000000 +0900
Change: 2025-09-14 18:30:00.000000000 +0900
 Birth: -

このように、ファイルに関する様々な情報が一気に表示されます。

3. 表示される主な項目の意味

3. 表示される主な項目の意味
3. 表示される主な項目の意味
  • Size: ファイルのサイズ(バイト単位)です。
  • Blocks: ファイルが使っているディスクのブロック数。
  • IO Block: 入出力時のブロック単位。
  • File: ファイルの名前と種類(例:regular file=通常ファイル)。
  • Inode: ファイルの一意な識別番号。
  • Links: ハードリンクの数。
  • Access: 最後にアクセスされた日時。
  • Modify: 内容が最後に変更された日時。
  • Change: メタデータ(属性情報)が最後に変更された日時。

これらの情報から、「いつ誰がファイルを触ったのか」や、「どのくらいのサイズがあるのか」など、ファイルの状態を詳細に知ることができます。

4. ディレクトリの情報を確認する

4. ディレクトリの情報を確認する
4. ディレクトリの情報を確認する

ファイルだけでなく、ディレクトリに対してもstatコマンドは使えます。


stat Documents
  File: Documents
  Size: 4096       Blocks: 8          IO Block: 4096   directory
Device: 802h/2050d Inode: 131075      Links: 3
Access: 2025-09-15 10:15:00.000000000 +0900
Modify: 2025-09-14 20:00:00.000000000 +0900
Change: 2025-09-14 20:00:00.000000000 +0900
 Birth: -

「directory」と表示されていることから、この対象がディレクトリであると分かります。lsコマンドでは分からないようなディレクトリの詳細も確認できます。

5. オプションを使って表示内容をカスタマイズ

5. オプションを使って表示内容をカスタマイズ
5. オプションを使って表示内容をカスタマイズ

statコマンドにはいくつか便利なオプションもあります。

■ --format(または -c)

特定の情報だけを表示したいときは、--formatオプションを使います。


stat --format="%s %n" sample.txt
1024 sample.txt

この例では、「サイズ(%s)」と「ファイル名(%n)」だけを表示しています。

■ --printf

--printfオプションを使えば、表示内容をより細かくカスタマイズできます。


stat --printf="名前: %n\nサイズ: %s バイト\n" sample.txt
名前: sample.txt
サイズ: 1024 バイト

6. ls -lとの違いは?

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

ls -lコマンドでもファイルの情報は見られますが、statのほうが情報量が多く、アクセス時刻・変更時刻・iノードなども表示されます。ログ調査やファイルの問題を追跡する際には、statの方が便利です。

以下はls -lの例です。


ls -l sample.txt
-rw-r--r-- 1 user user 1024 Sep 14 18:30 sample.txt

一方でstatでは、時間情報が秒単位で出たり、iノード番号などの詳細が見えるため、用途によって使い分けましょう。

7. よくある用途や活用例

7. よくある用途や活用例
7. よくある用途や活用例
  • ファイルが「いつ」変更されたかを確認する
  • 誰が所有者かを調べたいとき
  • ディスクのブロック単位の使用状況を知りたいとき
  • iノード番号を調べて、ハードリンクの関係性を確認したいとき

特にシステム管理や障害調査、バックアップスクリプトの作成など、中上級者向けの用途にも活用できる基本コマンドです。

まとめ

まとめ
まとめ

ここまで、Linuxでファイルやディレクトリの詳細情報を確認できるstatコマンドについて、基本的な使い方から実践的な活用方法までを詳しく解説してきました。statコマンドは、単にファイルが存在するかどうかを確認するだけでなく、ファイルの状態や履歴、属性を深く理解するための重要なLinuxコマンドです。

Linuxでは、ファイルやディレクトリに関する情報がすべてiノードという仕組みで管理されています。statコマンドを使うことで、このiノード番号をはじめ、ファイルサイズ、ブロック数、リンク数、アクセス権、所有者、そして各種タイムスタンプを一度に確認できます。これは、ls -lコマンドでは把握しきれない情報であり、Linuxの内部構造を理解するうえで非常に価値のある知識です。

特に重要なのが、Access、Modify、Changeという三つの時刻情報です。Accessはファイルが最後に読み取られた時刻、Modifyは内容が変更された時刻、Changeは権限や所有者などのメタデータが変更された時刻を示します。これらを正しく読み取れるようになると、「いつ内容が変わったのか」「いつ参照されたのか」「設定が変更されたのはいつか」といった調査が可能になり、トラブルシューティングやログ解析に大きく役立ちます。

statコマンドはディレクトリにも使える点も大きな特徴です。ディレクトリ自体もLinuxでは一つのファイルとして扱われているため、statを使えばディレクトリのサイズやリンク数、更新日時などを確認できます。ディレクトリのリンク数を見ることで、サブディレクトリ構造の理解にもつながり、Linuxのファイルシステムに対する理解が一段と深まります。

また、--format--printfオプションを使えば、statの出力内容を必要な情報だけに絞り込むことができます。これは、シェルスクリプトや自動化処理でstatを使う場合に非常に便利です。たとえば、ファイルサイズや更新日時だけを取得して条件分岐に使うなど、実務に直結する使い方も可能になります。

以下は、一般ユーザーでstatコマンドを使い、ファイルのサイズと更新日時を確認するシンプルな例です。


stat sample.txt
  File: sample.txt
  Size: 1024       Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d Inode: 131074      Links: 1
Access: 2025-09-15 10:00:00.000000000 +0900
Modify: 2025-09-14 18:30:00.000000000 +0900
Change: 2025-09-14 18:30:00.000000000 +0900
 Birth: -

この出力から、ファイルのサイズや種類だけでなく、「いつアクセスされ、いつ内容が変更されたのか」を正確に把握できます。Linuxでファイルの挙動に違和感を感じたとき、まずstatで状態を確認するという流れを覚えておくと、問題解決がスムーズになります。

statコマンドは、初心者には少し情報量が多く感じられるかもしれませんが、慣れてくると非常に頼りになる存在です。lsコマンドと使い分けながら、必要な場面でstatを使えるようになることで、Linux操作の理解度と作業効率は確実に向上します。

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

生徒「statコマンドって、lsよりもずっと詳しい情報が見られるんですね。時間の違いが特に印象に残りました。」

先生「そうですね。Access、Modify、Changeの違いが分かるようになると、Linuxのファイル管理が一気に理解しやすくなりますよ。」

生徒「iノード番号まで確認できるのは知りませんでした。ファイルの仕組みが少し分かった気がします。」

先生「良い気づきです。statはLinuxの内部構造を知るための入り口でもあります。」

生徒「これからは、ファイルに問題があったらまずstatで状態を確認してみます。」

先生「その習慣はとても大切ですね。statを使いこなせるようになると、Linux操作が一段レベルアップしますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Linuxでstatコマンドとは何ですか?初心者でもわかるように教えてください。

Linuxにおけるstatコマンドとは、ファイルやディレクトリの詳細情報を確認できるコマンドです。サイズ、所有者、アクセス日時、iノード番号などが一覧表示され、ls -lよりも詳しい情報を取得できます。
関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New2
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New3
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
New4
ファイル・ディレクトリ操作
cp --parentsオプションの使い方|ディレクトリ構造を保持してコピーする方法を完全解説!
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本