stat コマンドは、ファイルまたはディレクトリの詳細な状態情報を表示するためのコマンドです。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。

基本的な使い方

編集
stat [オプション] ファイルまたはディレクトリ

主なオプション(GNU coreutils版)

編集
主なオプション
オプション 説明
-c, --format=FORMAT 出力形式を指定
-f, --file-system ファイルシステムの情報を表示
-t, --terse 簡潔な形式で出力
-L, --dereference シンボリックリンクを解決して表示
-x, --no-xattr 拡張属性を表示しない
-z, --zero 出力を nul 文字で区切る

ファイルまたはディレクトリの状態を表示

編集
stat file.txt

file.txt の詳細な状態情報(サイズ、アクセス時間、変更時間、ファイルタイプなど)を表示。

ファイルシステム情報を表示

編集
stat -f file.txt

file.txt が格納されているファイルシステムの状態を表示。

簡潔な形式で表示

編集
stat -t file.txt

簡潔な形式で file.txt の状態を表示。

シンボリックリンクを解決して表示

編集
stat -L symlink.txt

シンボリックリンクである symlink.txt を解決し、その先のファイルの状態を表示。

特定の形式で表示

編集
stat -c %s file.txt

file.txt のファイルサイズのみを表示。

FreeBSD 版との違い

編集

FreeBSD でも stat コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。

主な違い:

編集
  1. -c(カスタムフォーマット)オプションがない
    • FreeBSD の stat では、出力形式をカスタマイズするための -c オプションは使用できません。
    • フォーマット指定には別の方法を使用する必要があります。
  2. -f(ファイルシステム情報)オプションの動作が異なる
    • FreeBSD では stat -f でファイルシステムの情報を表示できますが、その詳細はGNU版とは異なります。
  3. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gstat という名前で GNU 版の stat が使える。
    pkg install coreutils
    gstat -c %s file.txt  # GNU版の stat を使用
    

詳しくは、それぞれの環境で man stat を確認してください。