stat スタット

英語表記stat

日本語表記ファイル状態表示

正式名称stat

危険度安全

What does it mean?

ファイルのサイズ、inode番号、権限、リンク数、各種時刻などの詳細属性を表示します。検証やトラブルシュートで強力です。

Command Quest

stat を今日の道具にする

ファイルのサイズ、inode番号、権限、リンク数、各種時刻な...

$ stat [オプション] ファイル ...
関連用語21
次のコマンド0
FAQ2
参照3

概要

ファイルのサイズ、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分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 小さなファイルを作ってstatし、サイズ、権限、時刻を読み解きます。

  2. stat -cで名前、サイズ、権限だけを抜き出し、スクリプト向けの見方に慣れます。

資格試験との関連

  • LinuC レベル1
    範囲: 1.02 ファイル・ディレクトリの操作と管理
    根拠: official
    LinuCレベル1では、基本的なファイル管理、リンク、ファイル配置と検索が主要範囲です。statはその中核です。
  • LPIC-1
    範囲: 104.7 システムファイルの検索と正しい配置
    根拠: official
    LPIC-1では、ファイル配置、コマンド探索、基本的なファイル操作と確認が求められます。statはその土台になります。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、statはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。

オプション

  • -c 書式
    必要な項目だけを指定した書式で表示します。GNU系でスクリプト用途に便利です。
    stat -c "%n %s %a" file.txt
  • -f
    ファイルシステム情報を表示します。実装差があります。
    stat -f /

実行結果サンプル

  • printf "%sn" "demo" > demo.txt stat demo.txt
    File: demo.txt ...
  • stat -c "%n %s %a" demo.txt
    demo.txt 5 644

戻り値コード

  • 0 属性表示に成功しました。
  • >0 対象が存在しない、参照できないなどで失敗しました。

使用例

  • stat file.txt
  • stat -c "%n %s" file.txt
  • stat -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. 多くの環境では作成時刻ではなく、属性変更時刻です。

関連用語

  • ファイルシステム
  • inode
  • extent
  • hard link
  • symbolic link
  • sparse file
  • atime
  • permission
  • owner
  • group
  • other
  • mode bits
  • read permission
  • write permission
  • execute permission
  • umask
  • 拡張属性
  • setuid
  • setgid
  • sticky bit
  • compliance

参照リンク

関連記事