statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本
生徒
「Linuxでファイルの詳しい情報を確認する方法ってありますか?」
先生
「Linuxではstatコマンドを使うと、ファイルやディレクトリの詳細な情報を簡単に確認できますよ。」
生徒
「それってls -lと何が違うんですか?」
先生
「とても良い質問です。実際に使いながら、違いや基本的な使い方を見てみましょう!」
1. statコマンドとは?
statコマンドは、LinuxやUnix系OSでファイルやディレクトリの詳細な情報を表示するためのコマンドです。具体的には、ファイルのサイズ、更新日時、所有者、アクセス権限、iノード番号など、さまざまな情報を一括で確認できます。
「ls -l」コマンドでもある程度の情報は見られますが、statコマンドの方がより詳しい情報を一覧で取得できるため、システム管理やファイルの調査にとても役立ちます。
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. 表示される主な項目の意味
- Size: ファイルのサイズ(バイト単位)です。
- Blocks: ファイルが使っているディスクのブロック数。
- IO Block: 入出力時のブロック単位。
- File: ファイルの名前と種類(例:regular file=通常ファイル)。
- Inode: ファイルの一意な識別番号。
- Links: ハードリンクの数。
- Access: 最後にアクセスされた日時。
- Modify: 内容が最後に変更された日時。
- Change: メタデータ(属性情報)が最後に変更された日時。
これらの情報から、「いつ誰がファイルを触ったのか」や、「どのくらいのサイズがあるのか」など、ファイルの状態を詳細に知ることができます。
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. オプションを使って表示内容をカスタマイズ
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との違いは?
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. よくある用途や活用例
- ファイルが「いつ」変更されたかを確認する
- 誰が所有者かを調べたいとき
- ディスクのブロック単位の使用状況を知りたいとき
- iノード番号を調べて、ハードリンクの関係性を確認したいとき
特にシステム管理や障害調査、バックアップスクリプトの作成など、中上級者向けの用途にも活用できる基本コマンドです。