概要
ファイルのサイズ、inode番号、権限、リンク数、各種時刻などの詳細属性を表示します。検証やトラブルシュートで強力です。
基本構文
stat [オプション] ファイル ...詳細解説
statは、ファイルのメタデータを詳細に確認するためのコマンドです。ls -lでも基本情報は見られますが、statではinode番号、ブロック数、アクセス時刻、変更時刻、属性変更時刻など、より細かい情報を得られます。
実務では、権限トラブルの切り分け、バックアップ前後の属性比較、更新時刻の調査、シンボリックリンクやリンク数の確認で役立ちます。スクリプト用途では-c書式指定で必要項目だけを抜き出せる点も大きな強みです。
ただし、書式指定子や表示形式はGNU系とBSD系で差があるため、移植性重視のスクリプトでは注意が必要です。
このコマンドを使う場面
ファイルの詳細属性を確認したい時、lsだけでは足りない時、スクリプトでサイズや時刻だけを取り出したい時に使います。
まず安全に試す方法
1. printf "%sn" "demo" > demo.txt
2. stat demo.txt
3. stat -c "%n %s %a" demo.txt
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
小さなファイルを作ってstatし、サイズ、権限、時刻を読み解きます。
-
stat -cで名前、サイズ、権限だけを抜き出し、スクリプト向けの見方に慣れます。
資格試験との関連
-
LinuC レベル1
範囲: 1.02 ファイル・ディレクトリの操作と管理根拠: officialLinuCレベル1では、基本的なファイル管理、リンク、ファイル配置と検索が主要範囲です。statはその中核です。
-
LPIC-1
範囲: 104.7 システムファイルの検索と正しい配置根拠: officialLPIC-1では、ファイル配置、コマンド探索、基本的なファイル操作と確認が求められます。statはその土台になります。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、statはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。
実行結果サンプル
-
printf "%sn" "demo" > demo.txt stat demo.txtFile: demo.txt ... -
stat -c "%n %s %a" demo.txtdemo.txt 5 644
戻り値コード
- 0 属性表示に成功しました。
- >0 対象が存在しない、参照できないなどで失敗しました。
使用例
stat file.txtstat -c "%n %s" file.txtstat -c "%A %U %G" /etc/passwd
よくあるエラー
-
ctimeを作成時刻だと思っていた 原因: 多くのUnix系ではctimeは属性変更時刻です。対処: 各時刻の意味を区別し、必要ならbirth time対応可否も確認します。
-
別環境でstat -cが動かない 原因: GNU系とBSD系の差です。対処: 対象環境に合わせて書式や代替手段を調整します。
導入・互換性情報
GNU statとBSD系statではオプションや書式指定が異なります。GNU系の-cは便利ですが、そのまま他系統へ持ち込むと動かないことがあります。
- Debian GNU/Linux / 13 / GNU coreutils 9.7 / Bash 5.2.37
注意点 / セキュリティリスク
危険度は低い確認コマンドです。ただしctimeは作成時刻ではなく、inode属性変更時刻を指すことが多いため、意味を取り違えないよう注意が必要です。
FAQ
-
Q. ls -lとstatはどう使い分けますか。 A. ざっと見るだけならls -l、詳細属性やスクリプト向け抽出ならstatが向いています。
-
Q. ctimeは作成時刻ですか。 A. 多くの環境では作成時刻ではなく、属性変更時刻です。
関連用語
参照リンク
- カテゴリー: File And Directory
- レベル: Basic
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎