stat -tオプションの使い方をやさしく解説|簡易フォーマットでファイル情報を表示する方法
生徒
「先生、statコマンドって出力が多くて見づらいことがあります。もっとシンプルに表示する方法ってないんですか?」
先生
「あるよ。-tというオプションを使えば、ファイル情報を<強>1行の簡易フォーマット強>で表示できるんだ。とてもスッキリするよ。」
生徒
「それは便利そうですね!どうやって使うんですか?」
先生
「それじゃあ、stat -tの使い方を詳しく見てみよう!」
1. stat -tオプションとは?
stat -tは、Linuxのstatコマンドに用意されている簡易フォーマット表示用のオプションです。
通常のstatでは、ファイルの詳細情報が見やすく整えられて複数行で表示されますが、-tをつけると、それらの情報を1行にまとめて出力します。
出力の内容は機械向けで、人間には少し読みづらいこともありますが、スクリプト処理やファイルの一覧確認などでは非常に便利なオプションです。
2. 実際に使ってみよう!
まず、通常のstatコマンドの出力結果を見てみましょう。
stat /etc/hosts
File: /etc/hosts
Size: 230 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 1234567 Links: 1
Access: 2025-09-16 09:00:00.000000000 +0900
Modify: 2025-08-01 10:00:00.000000000 +0900
Change: 2025-08-01 10:01:00.000000000 +0900
次に-tオプションをつけて、同じファイルを表示してみます。
stat -t /etc/hosts
/etc/hosts 230 8 81a4 1000 1000 802 1234567 1694835600 1726458000 1726458060 4096
このように、出力結果が1行に簡略化されて表示されます。日付もUNIXタイムスタンプ(秒数で表す形式)になっており、他のツールで扱いやすい形になっています。
3. 各項目の意味を理解しよう
stat -tで出力される各フィールドは以下の順番です:
- ファイル名
- サイズ(バイト)
- ブロック数
- IOブロックサイズ
- UID(所有者のユーザーID)
- GID(所有者のグループID)
- デバイス番号
- inode番号
- 最終アクセス時刻(UNIX時間)
- 最終更新時刻(UNIX時間)
- 最終状態変更時刻(UNIX時間)
- ファイルシステムのブロックサイズ
「UNIX時間」とは、1970年1月1日から何秒経過したかで表される時刻のことです。これを人間が読める形式に変換するにはdateコマンドを使うと便利です。
date -d @1694835600
2023年9月16日 09時00分00秒 JST
4. stat -tの活用シーン
この-tオプションは、以下のような場面で役立ちます:
- ログとしてファイル情報を記録する
- 複数ファイルの情報を一括で取得してスクリプト処理する
- 人間には読みにくいが、プログラムにとって扱いやすい形式で出力する必要がある場面
例えば下記のように、複数ファイルの情報をまとめて取得することも可能です。
stat -t *.txt
file1.txt 128 8 4096 1000 1000 802 111111 1694835600 1726458000 1726458060 4096
file2.txt 256 8 4096 1000 1000 802 222222 1694835700 1726458010 1726458070 4096
5. 他のオプションとの違いを知っておこう
初心者にとってはstatの出力が多すぎて難しく感じることもあります。その点、-tはシンプルですが、以下のような点に注意が必要です:
- 項目名が表示されない(情報の意味を知っておく必要がある)
- 日付がUNIX時間で表示される(読みづらい)
- ファイルの種類やパーミッション情報は表示されない
もし人間にとって読みやすい形式で出力したい場合は、オプションなしのstatや--formatを使うのがよいでしょう。