スポンサーリンク

STAT(1) FreeBSD 一般コマンドマニュアル STAT(1)

名称

stat, readlink − ファイルの状態の表示

書式

stat [−FLnq] [−f format | −l | −r | −s | −x] [−t timefmt] [file ...]

readlink [−n] [file ...]

解説

stat ユーティリティは、 file で指定されるファイルの情報を表示します。ファ イルに対する、読み・書き・実行の権限は必要ではありませんが、ファイルに到 達するまでのパス名に列挙されているすべてのディレクトリは検索可能であるこ とが必要です。引数を指定しないと、 stat は、標準入力のファイル記述子に関 する情報を表示します。

readlink として起動すると、シンボリックリンクの対象のみが表示されます。指 定した引数がシンボリックリンクではない場合、 readlink は何も表示せず、エ ラーで終了します。

指定した引数で lstat(2) を呼び出し、返される構造体を評価することで、表示 される情報を取得します。

オプションは次の通りです:

       −F

ls(1) での表示と同様、ディレクトリである各パス名の直後にスラッ シュ (‘/’) を、各実行形式の後にアスタリスク (‘*’) を、各シンボ リックリンクの後にアット記号 (‘@’) を、各ホワイトアウトの後にパー セント記号 (‘%’) を、各ソケットの後に等号 (‘=’) を、各 FIFO の後 に垂直棒 (‘|’) を表示します。 −F を指定すると、 −l を暗黙的に指定 します。

−L
lstat(2) の代りに stat(2) を使用します。 stat が報告する情報は、 file がシンボリックリンクの場合、その対象を参照し、 file 自身を参 照するものではありません。

−n
出力の各部分の最後に、改行を強制しません。

−q
stat(2)lstat(2) の呼び出しが失敗しても、失敗のメッセージを抑 制します。 readlink として実行すると、エラーメッセージは自動的に 抑制されます。

−f format
指定したフォーマットを使用して情報を表示します。正しいフォーマッ トに関しては、 フォーマット節を参照してください。

−l
ls −lT
フォーマットで表示します。

−r
生の情報を表示します。 stat 構造体のすべてのフィールドに対し、生 の数値 (例えば、基準時点から経過した秒数など) を表示します。

−s
変数の初期化に適した、 ‘‘シェル出力’’ で情報を表示します。

−x
ある種の Linux ディストリビューションで使われている冗長な方法で情 報を表示します。

−t timefmt
指定したフォーマットでタイムスタンプを表示します。このフォーマッ トは直接 strftime(3) に渡されます。

フォーマット
フォーマット文字列は printf(3) フォーマットに似ており、 % で開始し、それ に一連のフォーマット文字が続き、フォーマット対象の struct stat のフィール ドを選択する 1 文字で終了します。 % の直後に n, t, %, @ が続くと、改行文 字、タブ文字、パーセント文字、現在のファイル番号が表示されます。それ以外 の場合、文字列は次のように解釈されます:

以下は省略可能なフラグです:

#
8 進数および 16 進数の出力に対し、別の出力形式を選択します。非 0 の 8 進数は前に 0 が付き、非 0 の 16 進数は前に ‘‘0x’’ が付くよう になります。

+
数値の正負を示す符号を常に表示するよう、指示します。非負の数値 は、通常は符号付きでは表示されません。

-
出力文字列を、フィールドの右ではなく左に揃えます。

0
フィールドの左側を埋める文字を、空白の代りに文字 ‘0’ にします。

空白
非負の符号付き出力フィールドの前の空白を保持します。 ‘+’ と空白の 両方が指定された場合、 ‘+’ が優先します。

その後に下記のフィールドが続きます:

size
省略可能な 10 進数文字列であり、最小のフィールド幅を指定します。

prec
省略可能な精度であり、小数点 ‘.’ と 10 進数文字列からなります。文 字列出力での最大長か、浮動小数点数出力での小数点の後に続く桁数 か、数値出力での最小桁数を指定します。

fmt
省略可能な、出力フォーマット指示子です。 D, O, U, X, F, S のいず れかです。それぞれ、符号付き 10 進数出力、 8 進数出力、符号無し 10 進数出力、 16 進数出力、浮動小数点数出力、文字列出力です。 フィールドによっては、使用できない出力フォーマットがあります。浮 動小数点数出力は、 timespec フィールド (a, m, c フィールド) に対 してのみ使用可能です。

使用可能ならば、特別な出力指示子 S を使用し、文字列フォーマットを 指定可能です。下記のものと組み合わせることができます:

amc
日付を strftime(3) フォーマットで表示します。

dr
実際のデバイス名を表示します。

gu
グループまたはユーザの名前を表示します。

p
file
のモードを ls −lTd のフォーマットで表示します。

N
file
の名前を表示します。

T
file
のタイプを表示します。

Y
出力に ‘‘ -> ’’ を挿入します。 Y に対するデフォルトの出力 フォーマットは文字列ですが、明示的に指定された場合にはこ れらの 4 文字が前に付くことに注意してください。

sub
省略可能なサブフィールド指示子 (高・中・低) です。 p, d, r, T 出 力フォーマットに対してのみ使用可能です。サブフィールド指示子は次 のいずれかです:

H
‘‘高’’ — r, d に対してはデバイスのメジャー番号、 p の文字 列フォーマットに対しては権限の ‘‘user’’ 部分、 p の数値 フォーマットに対してはファイルの ‘‘type’’ 部分、 T に対し ては長い出力フォーマット。

L
‘‘低’’ — r, d に対してはデバイスのマイナ番号、 p の文字列 フォーマットに対しては権限の ‘‘other’’ 部分、 p の数値 フォーマットに対してはファイルの ‘‘user’’, ‘‘group’’, ‘‘other’’ 部分、 T に対してはファイルタイプを表現する ls −F スタイルの出力文字 (これに対する L は省略可能です)。

M
‘‘中’’ — p の文字列フォーマットに対しては権限の ‘‘group’’ 部分、 p の数値フォーマットに対してはファイルの ‘‘suid’’, ‘‘sgid’’, ‘‘sticky’’ 部分。

datum
必須のフィールド指示子であり、下記のいずれかひとつです:

d
file
が存在するデバイス。

i
file
の inode 番号。

p
ファイルタイプと権限。

l
file
に対するハードリンク数。

u, g
file
所有者のユーザ ID とグループ ID。

r
キャラクタスペシャルデバイスファイルとブロックスペシャル デバイスファイルに対する、デバイス番号。

a, m, c, B
それぞれ、 file の最終アクセス時刻、 file の最終変更時 刻、 inode の最終変更時刻、 inode の生成時刻。

z
バイト単位での file の大きさ。

b
file
に対して割り当てられているブロック数。

k
ファイルシステム I/O 操作での最適なブロックサイズ。

f
file
に対するユーザ定義のフラグ。

v
inode の世代番号。

下記の 4 個のフィールド指示子は、 struct stat から直接取り出せる ものではありませんが、指定可能です:

N
ファイル名。

T
ファイルタイプであり、 ls −F フォーマットか、 sub フィー ルド指示子 H が指定された場合はより記述的なフォーマット。

Y
シンボリックリンクの対象。

Z
キャラクタスペシャルデバイスまたはブロックスペシャルデバ イスの rdev フィールドからは ‘‘major,minor’’ に展開、他の ものに対してはサイズ出力。

% とフィールド指示子のみが必須です。ほとんどのフィールド指示子の出力 フォーマットのデフォルトは U です。例外は次の通りです。 p のデフォルトは O であり、 a, m, c のデフォルトは D であり、 Y, T, N のデフォルトは S で す。

終了状態

ユーティリティ stat および readlink は、成功すると 0 で、エラーがあった場 合は >0 で終了します。

使用例

foo/tmp/foo から / を指すシンボリックリンクの場合、 stat を次のように 使用できます:

      > stat -F /tmp/foo
      lrwxrwxrwx 1 jschauma cs 1 Apr 24 16:37:28 2002 /tmp/foo@ -> /

     > stat -LF /tmp/foo
      drwxr-xr-x 16 root wheel 512 Apr 19 10:57:54 2002 /tmp/foo/

シェル変数を初期化するために、 −s 変数を次のように使用できます:

      > csh
      % eval set ‘stat -s .cshrc‘
      % echo $st_size $st_mtimespec
      1148 1015432481

     > sh
      $ eval $(stat -s .profile)
      $ echo $st_size $st_mtimespec
      1148 1015432481

ファイルの種類の一覧を、ファイルがシンボリックリンクの場合には指される ファイルを含めて表示するには、次のフォーマットを使用可能です:

      $ stat -f "%N: %HT%SY" /tmp/*
      /tmp/bar: Symbolic Link -> /tmp/foo
      /tmp/output25568: Regular File
      /tmp/blah: Directory
      /tmp/foo: Symbolic Link -> /

デバイス一覧を、それらのタイプ・メジャーデバイス番号・マイナデバイス番号 付きで表示し、タブと改行で整形するには、次のフォーマットを使用可能です:

      stat -f "Name: %N%n%tType: %HT%n%tMajor: %Hr%n%tMinor: %Lr%n%n" /dev/*
      [...]
      Name: /dev/wt8
              Type: Block Device
              Major: 3
              Minor: 8

     Name: /dev/zero
              Type: Character Device
              Major: 2
              Minor: 12

ファイルに対して設定されたそれぞれの権限を特定するには、次のフォーマット を使用可能です:

      > stat -f "%Sp -> owner=%SHp group=%SMp other=%SLp" .
      drwxr-xr-x -> owner=rwx group=r-x other=r-x

最も最近修正された 3 個のファイルを特定するには、次のフォーマットを使用可 能です:

      > stat -f "%m%t%Sm %N" /tmp/* | sort -rn | head -3 | cut -f2-
      Apr 25 11:47:00 2002 /tmp/blah
      Apr 25 10:36:34 2002 /tmp/bar
      Apr 24 16:47:35 2002 /tmp/foo

関連項目

file(1), ls(1), lstat(2), readlink(2), stat(2), printf(3), strftime(3)

歴史

stat ユーティリティは NetBSD 1.6 に登場しました。

作者

stat ユーティリティは Andrew Brown ⟨atatat@NetBSD.org⟩ が記述しました。こ のマニュアルページは Jan Schaumann ⟨jschauma@NetBSD.org⟩ が記述しました。

FreeBSD 10.0 May 8, 2003 FreeBSD 10.0

スポンサーリンク