Linux 初心者向けの 5 つの「stat」コマンド例
stat コマンドは、ファイルまたはファイル システムのステータスを表示するのに便利なユーティリティです。ファイルの種類などの情報を取得します。アクセス権は 8 進数で人間が読める形式で表示されます。 SELinux セキュリティ コンテキスト文字列。ファイルの作成時刻、最終アクセス、最終データ変更、人間が判読できる形式およびエポックからの秒単位での最後のステータス変更など。
情報を表示するために、デフォルトの代わりにカスタム形式を指定するオプションがあります。このガイドでは、Linux 初心者向けに 5 つの stat コマンドの例を見ていきます。
Linux ファイルのステータスを確認する
1. stat を使用する最も簡単な方法は、ファイルを引数として指定することです。次のコマンドは、スクリーンショットに示すように、ファイル /var/log/syslog のサイズ、ブロック、IO ブロック、ファイル タイプ、inode 値、リンク数、およびその他の情報を表示します。
$ stat /var/log/syslog
File: '/var/log/syslog'
Size: 26572 Blocks: 56 IO Block: 4096 regular file
Device: 80ah/2058d Inode: 8129076 Links: 1
Access: (0640/-rw-r-----) Uid: ( 104/ syslog) Gid: ( 4/ adm)
Access: 2018-04-06 09:42:10.987615337 +0530
Modify: 2018-04-06 11:09:29.756650149 +0530
Change: 2018-04-06 11:09:29.756650149 +0530
Birth: -
ファイルシステムのステータスを確認する
2. 前の例では、stat コマンドは入力ファイルを通常のファイルとして処理しましたが、ファイルのステータスではなくファイル システムのステータスを表示するには、-f
オプションを使用します。
$ stat -f /var/log/syslog
File: "/var/log/syslog"
ID: ce97e63d2201c974 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 84769790 Free: 16012830 Available: 11700997
Inodes: Total: 21544960 Free: 20995459
示されているように、ディレクトリ/ファイルシステムを引数として指定することもできます。
$ stat -f /
File: "/"
ID: ce97e63d2201c974 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 84769790 Free: 16056471 Available: 11744638
Inodes: Total: 21544960 Free: 21005263
シンボリックリンクのフォローを有効にする
3. Linux はリンク (シンボリックとハードリンク) をサポートしているため、特定のファイルには 1 つ以上のリンクが含まれている場合や、ファイルが 1 つのファイルに存在する場合もあります。ファイルシステム。
stat がリンクをたどれるようにするには、次のように -L
フラグを使用します。
$ stat -L /
File: '/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 80ah/2058d Inode: 2 Links: 25
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-04-09 10:55:55.119150525 +0530
Modify: 2018-02-20 11:15:54.462893167 +0530
Change: 2018-02-20 11:15:54.462893167 +0530
Birth: -
カスタム形式を使用して情報を表示する
4. stat では、デフォルトの代わりに特定の形式またはカスタム形式を使用することもできます。 -c
フラグは、使用する形式を指定するために使用され、形式シーケンスを使用するたびに改行を出力します。
あるいは、--printf
オプションを使用すると、バックスラッシュ エスケープ シーケンスの解釈が有効になり、末尾の改行の印刷がオフになります。たとえば、新しい行を印刷するには、形式で \n
を使用する必要があります。
stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure
上記の例で使用されているファイルのフォーマット シーケンスの意味:
- %U – 所有者のユーザー名
- %G – 所有者のグループ名
- %C – SELinux セキュリティ コンテキスト文字列
- %z – 最後にステータスが変更された時刻、人間が判読できる形式
5. ここでは、ファイル システムで受け入れられている形式シーケンスの使用例を示します。
stat --printf='%n\n%a\n%b\n' /
上記のコマンドで使用されるフォーマット シーケンスの意味。
- %n – ファイル名を表示します
- %a – スーパーユーザー以外が利用できる空きブロックを出力します。
- %b – ファイル システム内の合計データ ブロックを出力します。
情報を簡潔な形式で印刷する
6. -t
オプションを使用すると、情報を簡潔な形式で出力できます。
$ stat -t /var/log/syslog
/var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096
最後の注意として、シェルには独自のバージョンの stat がある場合があります。サポートされるオプションの詳細については、シェルのドキュメントを参照してください。受け入れられるすべての出力形式シーケンスを確認するには、stat のマニュアル ページを参照してください。
man stat
この記事では、Linux 初心者向けに stat コマンドの例を 5 つ説明しました。ご質問がある場合は、以下のフィードバック フォームをご利用ください。