.\" $NetBSD: stat.1,v 1.11 2003/05/08 13:07:10 wiz Exp $ .\" .\" Copyright (c) 2002 The NetBSD Foundation, Inc. .\" All rights reserved. .\" .\" This code is derived from software contributed to The NetBSD Foundation .\" by Andrew Brown and Jan Schaumann. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the NetBSD .\" Foundation, Inc. and its contributors. .\" 4. Neither the name of The NetBSD Foundation nor the names of its .\" contributors may be used to endorse or promote products derived .\" from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" .\" %FreeBSD: src/usr.bin/stat/stat.1,v 1.6 2003/06/02 11:19:23 ru Exp % .\" .\" $FreeBSD$ .Dd May 8, 2003 .Dt STAT 1 .Os .Sh 名称 .Nm stat , .Nm readlink .Nd ファイルの状態の表示 .Sh 書式 .Nm .Op Fl FLnq .Op Fl f Ar format | Fl l | r | s | x .Op Fl t Ar timefmt .Op Ar .Nm readlink .Op Fl n .Op Ar .Sh 解説 .Nm ユーティリティは、 .Ar file で指定されるファイルの情報を表示します。 ファイルに対する、読み・書き・実行の権限は必要ではありませんが、 ファイルに到達するまでのパス名に列挙されているすべてのディレクトリは 検索可能であることが必要です。 引数を指定しないと、 .Nm は、標準入力のファイル記述子に関する情報を表示します。 .Pp .Nm readlink として起動すると、シンボリックリンクの対象のみが表示されます。 指定した引数がシンボリックリンクではない場合、 .Nm readlink は何も表示せず、エラーで終了します。 .Pp 指定した引数で .Xr lstat 2 を呼び出し、返される構造体を評価することで、表示される情報を取得します。 .Pp オプションは次の通りです: .Bl -tag -width indent .It Fl F .Xr ls 1 での表示と同様、ディレクトリである各パス名の直後にスラッシュ .Pq Ql / を、各実行形式の後にアスタリスク .Pq Ql * を、各シンボリックリンクの後にアット記号 .Pq Ql @ を、各ホワイトアウトの後にパーセント記号 .Pq Ql % を、各ソケットの後に等号 .Pq Ql = を、各 FIFO の後に垂直棒 .Pq Ql | を表示します。 .Fl F を指定すると、 .Fl l を暗黙的に指定します。 .It Fl L .Xr lstat 2 の代りに .Xr stat 2 を使用します。 .Nm が報告する情報は、 .Ar file がシンボリックリンクの場合、その対象を参照し、 .Ar file 自身を参照するものではありません。 .It Fl n 出力の各部分の最後に、改行を強制しません。 .It Fl q .Xr stat 2 や .Xr lstat 2 の呼び出しが失敗しても、失敗のメッセージを抑制します。 .Nm readlink として実行すると、エラーメッセージは自動的に抑制されます。 .It Fl f Ar format 指定したフォーマットを使用して情報を表示します。 正しいフォーマットに関しては、 .Sx フォーマット 節を参照してください。 .It Fl l .Nm ls Fl lT フォーマットで表示します。 .It Fl r 生の情報を表示します。 .Vt stat 構造体のすべてのフィールドに対し、生の数値 (例えば、基準時点から経過した秒数など) を表示します。 .It Fl s 変数の初期化に適した、 .Dq "シェル出力" で情報を表示します。 .It Fl x ある種の .Tn Linux ディストリビューションで使われている冗長な方法で情報を表示します。 .It Fl t Ar timefmt 指定したフォーマットでタイムスタンプを表示します。 このフォーマットは直接 .Xr strftime 3 に渡されます。 .El .Ss フォーマット フォーマット文字列は .Xr printf 3 フォーマットに似ており、 .Cm % で開始し、それに一連のフォーマット文字が続き、 フォーマット対象の .Vt "struct stat" のフィールドを選択する 1 文字で終了します。 .Cm % の直後に .Cm n , t , % , @ が続くと、 改行文字、タブ文字、パーセント文字、現在のファイル番号が表示されます。 それ以外の場合、文字列は次のように解釈されます: .Pp 以下は省略可能なフラグです: .Bl -tag -width indent .It Cm # 8 進数および 16 進数の出力に対し、別の出力形式を選択します。 非 0 の 8 進数は前に 0 が付き、非 0 の 16 進数は前に .Dq Li 0x が付くようになります。 .It Cm + 数値の正負を示す符号を常に表示するよう、指示します。 非負の数値は、通常は符号付きでは表示されません。 .It Cm - 出力文字列を、フィールドの右ではなく左に揃えます。 .It Cm 0 フィールドの左側を埋める文字を、空白の代りに文字 .Ql 0 にします。 .It 空白 非負の符号付き出力フィールドの前の空白を保持します。 .Sq Cm + と空白の両方が指定された場合、 .Sq Cm + が優先します。 .El .Pp その後に下記のフィールドが続きます: .Bl -tag -width indent .It Ar size 省略可能な 10 進数文字列であり、最小のフィールド幅を指定します。 .It Ar prec 省略可能な精度であり、小数点 .Sq Cm \&. と 10 進数文字列からなります。 文字列出力での最大長か、 浮動小数点数出力での小数点の後に続く桁数か、 数値出力での最小桁数を指定します。 .It Ar fmt 省略可能な、出力フォーマット指示子です。 .Cm D , O , U , X , F , .Cm S のいずれかです。 それぞれ、 符号付き 10 進数出力、 8 進数出力、 符号無し 10 進数出力、 16 進数出力、 浮動小数点数出力、 文字列出力です。 フィールドによっては、使用できない出力フォーマットがあります。 浮動小数点数出力は、 .Vt timespec フィールド .Cm ( a , m , c フィールド) に対してのみ使用可能です。 .Pp 使用可能ならば、特別な出力指示子 .Cm S を使用し、文字列フォーマットを指定可能です。 下記のものと組み合わせることができます: .Bl -tag -width indent .It Cm amc 日付を .Xr strftime 3 フォーマットで表示します。 .It Cm dr 実際のデバイス名を表示します。 .It Cm gu グループまたはユーザの名前を表示します。 .It Cm p .Ar file のモードを .Nm ls Fl lTd のフォーマットで表示します。 .It Cm N .Ar file の名前を表示します。 .It Cm T .Ar file のタイプを表示します。 .It Cm Y 出力に .Dq Li " -\*[Gt] " を挿入します。 .Cm Y に対するデフォルトの出力フォーマットは文字列ですが、 明示的に指定された場合にはこれらの 4 文字が前に付くことに注意してください。 .El .It Ar sub 省略可能なサブフィールド指示子 (高・中・低) です。 .Cm p , d , r , .Cm T 出力フォーマットに対してのみ使用可能です。 サブフィールド指示子は次のいずれかです: .Bl -tag -width indent .It Cm H .Dq 高 \[em] .Cm r , .Cm d に対してはデバイスのメジャー番号、 .Cm p の文字列フォーマットに対しては権限の .Dq user 部分、 .Cm p の数値フォーマットに対してはファイルの .Dq type 部分、 .Cm T に対しては長い出力フォーマット。 .It Cm L .Dq 低 \[em] .Cm r , .Cm d に対してはデバイスのマイナ番号、 .Cm p の文字列フォーマットに対しては権限の .Dq other 部分、 .Cm p の数値フォーマットに対してはファイルの .Dq user , .Dq group , .Dq other 部分、 .Cm T に対してはファイルタイプを表現する .Nm ls Fl F スタイルの出力文字 (これに対する .Cm L は省略可能です)。 .It Cm M .Dq 中 \[em] .Cm p の文字列フォーマットに対しては権限の .Dq group 部分、 .Cm p の数値フォーマットに対してはファイルの .Dq suid , .Dq sgid , .Dq sticky 部分。 .El .It Ar datum 必須のフィールド指示子であり、下記のいずれかひとつです: .Bl -tag -width indent .It Cm d .Ar file が存在するデバイス。 .It Cm i .Ar file の inode 番号。 .It Cm p ファイルタイプと権限。 .It Cm l .Ar file に対するハードリンク数。 .It Cm u , g .Ar file 所有者のユーザ ID とグループ ID。 .It Cm r キャラクタスペシャルデバイスファイルとブロックスペシャルデバイスファイル に対する、デバイス番号。 .It Cm a , m , c , B それぞれ、 .Ar file の最終アクセス時刻、 .Ar file の最終変更時刻、 inode の最終変更時刻、 inode の生成時刻。 .It Cm z バイト単位での .Ar file の大きさ。 .It Cm b .Ar file に対して割り当てられているブロック数。 .It Cm k ファイルシステム I/O 操作での最適なブロックサイズ。 .It Cm f .Ar file に対するユーザ定義のフラグ。 .It Cm v inode の世代番号。 .El .Pp 下記の 4 個のフィールド指示子は、 .Vt "struct stat" から直接取り出せるものではありませんが、指定可能です: .Bl -tag -width indent .It Cm N ファイル名。 .It Cm T ファイルタイプであり、 .Nm ls Fl F フォーマットか、 .Ar sub フィールド指示子 .Cm H が指定された場合はより記述的なフォーマット。 .It Cm Y シンボリックリンクの対象。 .It Cm Z キャラクタスペシャルデバイスまたはブロックスペシャルデバイスの .Va rdev フィールドからは .Dq major,minor に展開、他のものに対してはサイズ出力。 .El .El .Pp .Cm % とフィールド指示子のみが必須です。 ほとんどのフィールド指示子の出力フォーマットのデフォルトは .Cm U です。 例外は次の通りです。 .Cm p のデフォルトは .Cm O であり、 .Cm a , m , c のデフォルトは .Cm D であり、 .Cm Y , T , N のデフォルトは .Cm S です。 .Sh 終了状態 .Ex -std stat readlink .Sh 使用例 .Pa foo が .Pa /tmp/foo から .Pa / を指すシンボリックリンクの場合、 .Nm を次のように使用できます: .Bd -literal -offset indent \*[Gt] stat -F /tmp/foo lrwxrwxrwx 1 jschauma cs 1 Apr 24 16:37:28 2002 /tmp/foo@ -\*[Gt] / \*[Gt] stat -LF /tmp/foo drwxr-xr-x 16 root wheel 512 Apr 19 10:57:54 2002 /tmp/foo/ .Ed .Pp シェル変数を初期化するために、 .Fl s 変数を次のように使用できます: .Bd -literal -offset indent \*[Gt] csh % eval set `stat -s .cshrc` % echo $st_size $st_mtimespec 1148 1015432481 \*[Gt] sh $ eval $(stat -s .profile) $ echo $st_size $st_mtimespec 1148 1015432481 .Ed .Pp ファイルの種類の一覧を、 ファイルがシンボリックリンクの場合には指されるファイルを含めて表示するには、 次のフォーマットを使用可能です: .Bd -literal -offset indent $ stat -f "%N: %HT%SY" /tmp/* /tmp/bar: Symbolic Link -\*[Gt] /tmp/foo /tmp/output25568: Regular File /tmp/blah: Directory /tmp/foo: Symbolic Link -\*[Gt] / .Ed .Pp デバイス一覧を、それらのタイプ・メジャーデバイス番号・マイナデバイス番号 付きで表示し、タブと改行で整形するには、次のフォーマットを使用可能です: .Bd -literal -offset indent 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 .Ed .Pp ファイルに対して設定されたそれぞれの権限を特定するには、 次のフォーマットを使用可能です: .Bd -literal -offset indent \*[Gt] stat -f "%Sp -\*[Gt] owner=%SHp group=%SMp other=%SLp" . drwxr-xr-x -\*[Gt] owner=rwx group=r-x other=r-x .Ed .Pp 最も最近修正された 3 個のファイルを特定するには、 次のフォーマットを使用可能です: .Bd -literal -offset indent \*[Gt] 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 .Ed .Sh 関連項目 .Xr file 1 , .Xr ls 1 , .Xr lstat 2 , .Xr readlink 2 , .Xr stat 2 , .Xr printf 3 , .Xr strftime 3 .Sh 歴史 .Nm ユーティリティは .Nx 1.6 に登場しました。 .Sh 作者 .An -nosplit .Nm ユーティリティは .An Andrew Brown .Aq atatat@NetBSD.org が記述しました。 このマニュアルページは .An Jan Schaumann .Aq jschauma@NetBSD.org が記述しました。