統計出力の「hex rawモード」とは何ですか?

統計出力の「hex rawモード」とは何ですか?

GNUを使用してファイルシステムを調べるとき、特にこのエントリの/引数にstat使用できるフォーマットシーケンスがたくさんあります。--format--printf

%f    Raw mode in hex

あまり意味がありません。 %aアクセスモードと比較すると、stat --format '%f %a'元のモードは41edですが、アクセスモードは755、元のモードは81a4ですが、アクセスモードは644です。

では、「生モード」とはどういう意味ですか?

答え1

「ヘックス生モード」の意味を解釈するには2つの部分があります。最初は16進数ただし、アクセスパターンは一般的に次のトピックで説明されています。8進数:

41ed 16 = 40775 8   
81a4 16 = 100644 8

これを確認するには、/tmp通常、制限削除フラグ(「固定ビット」)を設定します。

$ ls -ld /tmp
drwxrwxrwt 17ルート4096 2012-05-31 13:45 /tmp
$stat --format '%f %a' /tmp
1777年43号

そして変換:

43ff 16 = 41777 8

stat関数()のプログラママニュアルでは、「16進ネイティブモード」について説明し、man 2 statそのモードが8進値であると述べています。

st_mode フィールドには次のフラグが定義されます。

S_IFMT 0170000 ファイルタイプビットフィールドのビットマスク
S_IFSOCK 0140000ソケット
S_IFLNK 0120000シンボリックリンク
S_IFREG 0100000 一般ファイル
S_IFBLK 0060000ブロックデバイス
S_IFDIR 0040000 ディレクトリ
S_IFCHR 0020000 文字デバイス
S_IFIFO 0010000先入選出
S_ISUID 0004000 UID ビット設定
S_ISGID 0002000はグループIDビットを設定します(下記参照)。
S_ISVTX 0001000固定ビット(下記参照)
S_IRWXU 00700 ファイル所有者権限マスク
S_IRUSR 00400 所有者に読み取り権限があります。
S_IWUSR 00200 所有者に書き込み権限があります
S_IXUSR 00100 所有者に実行権限があります
S_IRWXG 00070 グループ権限マスク
S_IRGRP 00040 グループに読み取り権限があります。
S_IWGRP 00020 グループに書き込み権限があります。
S_IXGRP 00010 グループに実行権限があります。
S_IRWXO 00007他の人の権限マスク(グループに属していません)
S_IROTH 00004 他のユーザーが読み取り権限を持っています。
S_IWOTH 00002 他のユーザーが書き込み権限を持っています。
S_IXOTH 00001 他のユーザーが実行権限を持っています。

(異常な点は、オンラインマニュアルページこの部分がありません。 )

これはビットフィールド、最後の4桁の数字がアクセスパターンと一致することがわかります。先頭の数字(16進数)はファイルの種類と一致するため、16進数パターン81a4は「ディレクトリ、パターン0644」に対応し、16進数パターン41edは「一般ファイル、モード」に対応します。 0775"。

関連情報