GNU/Linux >> Linux の 問題 >  >> Linux

LinuxのStatコマンド

stat は、特定のファイルまたはファイルシステムに関する詳細情報を表示するコマンドラインユーティリティです。

この記事では、statの使用方法について説明します コマンド。

statの使用 コマンド#

statの構文 コマンドは次のとおりです:

stat [OPTION]... FILE...

stat 1つ以上の入力FILEを受け入れます 名前を付け、コマンドの動作と出力を制御するいくつかのオプションが含まれています。

次の例を見てみましょう:

stat file.txt

出力は次のようになります:

  File: file.txt
  Size: 4030      	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 13633379    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   linuxize)   Gid: ( 1000/   linuxize)
Access: 2019-11-06 09:52:17.991979701 +0100
Modify: 2019-11-06 09:52:17.971979713 +0100
Change: 2019-11-06 09:52:17.971979713 +0100
 Birth: -

オプションなしで呼び出された場合、stat 次のファイル情報を表示します:

  • ファイル-ファイルの名前。
  • サイズ-ファイルのサイズ(バイト単位)。
  • ブロック-ファイルが取る割り当てられたブロックの数。
  • IOブロック-すべてのブロックのサイズ(バイト単位)。
  • ファイルタイプ-(例:通常のファイル、ディレクトリ、シンボリックリンク)
  • デバイス-16進数および10進数のデバイス番号。
  • Inode-iノード番号。
  • リンク-ハードリンクの数。
  • アクセス-数値法と記号法でのファイルのアクセス許可。
  • Uid-ユーザーIDと所有者の名前。
  • Gid-グループIDと所有者の名前。
  • コンテキスト-SELinuxセキュリティコンテキスト。
  • アクセス-ファイルが最後にアクセスされた時刻。
  • 変更-ファイルのコンテンツが最後に変更された時刻。
  • 変更-ファイルの属性またはコンテンツが最後に変更された時刻。
  • 誕生-ファイル作成時間(Linuxではサポートされていません)。

ファイルシステムに関する情報の表示#

ファイル自体に関する情報ではなく、特定のファイルが存在するファイルシステムに関する情報を取得するには、-fを使用します。 、(--file-system )オプション:

stat -f file.txt

コマンドの出力は次のようになります:

  File: "package.json"
    ID: 8eb53097b4494d20 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 61271111   Free: 25395668   Available: 22265851
Inodes: Total: 15630336   Free: 13979610

statの場合 -fで呼び出されます オプションの場合、次の情報が表示されます:

  • ファイル-ファイルの名前。
  • ID-ファイルシステムID(16進数)。
  • Namelen-ファイル名の最大長。
  • 基本ブロックサイズ-ファイルシステム上の各ブロックのサイズ。
  • ブロック:
    • 合計-ファイルシステム内の合計ブロック数。
    • 空き-ファイルシステム内の空きブロックの数。
    • Ava​​ilable-root以外のユーザーが利用できる空きブロックの数。
  • iノード:
    • 合計-ファイルシステム内の合計iノードの数。
    • 無料-ファイルシステム内の空きiノードの数。

デフォルトでは、stat シンボリックリンクをたどりません。シンボリックリンクでコマンドを実行すると、出力には、それが指すファイルではなく、シンボリックリンクに関する情報が含まれます。

stat /etc/resolv.conf
  File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
  Size: 39        	Blocks: 0          IO Block: 4096   symbolic link
Device: 801h/2049d	Inode: 8126659     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-11-06 21:12:26.875956073 +0100
Modify: 2018-07-24 11:11:48.128794519 +0200
Change: 2018-07-24 11:11:48.128794519 +0200
 Birth: -

シンボリックリンクを逆参照(フォロー)し、シンボリックリンクが指すファイルに関する情報を表示するには、-Lを使用します。 、(--dereference )オプション:

stat -L /etc/resolv.conf
  File: /etc/resolv.conf
  Size: 715       	Blocks: 8          IO Block: 4096   regular file
Device: 17h/23d	Inode: 989         Links: 1
Access: (0644/-rw-r--r--)  Uid: (  101/systemd-resolve)   Gid: (  103/systemd-resolve)
Access: 2019-11-06 20:35:25.603689619 +0100
Modify: 2019-11-06 20:35:25.555689733 +0100
Change: 2019-11-06 20:35:25.555689733 +0100
 Birth: -

出力のカスタマイズ#

stat コマンドには、必要に応じて出力をカスタマイズできる2つのオプションがあります。-c 、(--format="format" )および--printf="format"

これら2つのオプションの違いは、2つ以上のファイルが演算子として使用される場合--format 各オペランドの出力の後に改行が自動的に追加されます。 --printf バックスラッシュエスケープを解釈します。

--formatで使用できるファイルおよびファイルシステム用の多くのフォーマットディレクティブがあります および--printf

たとえば、ファイルの種類のみを表示するには、次のコマンドを実行します。

stat --format="%F" /dev/null
character special file

任意の数のフォーマットディレクティブを組み合わせて、オプションでそれらの間にカスタムセパレータを使用できます。区切り文字は、単一の文字または文字列にすることができます:

stat --format="%n,%F" /dev/null
/dev/null,character special file

改行やタブなどの特殊文字を解釈するには、--printfを使用します オプション:

stat --printf='Name: %n\nPermissions: %a\n' /etc

\n 新しい行を印刷します:

Name: /etc
Permissions: 755

stat 簡潔な形式で情報を表示することもできます。この形式は、他のユーティリティによる解析に役立ちます。

-tを使用してコマンドを呼び出します (--terse )出力を簡潔な形式で印刷するオプション:

stat -t /etc
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096

ファイルおよびファイルシステムタイプのすべてのフォーマットディレクティブの完全なリストについては、man stat またはstat --help ターミナルで。

結論#

stat コマンドは、指定されたファイルとファイルシステムに関する情報を出力します。

Linuxでは、他のいくつかのコマンドで、lsを使用して特定のファイルに関する情報を表示できます。 最も使用されているものですが、statによって提供される情報のチャンクのみが表示されます コマンド。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. statコマンドを使用してLinuxのファイルステータスを確認します

  2. Linuxwcコマンド

  3. Linuxgrepコマンド

  1. Linuxでの8つのヘッドコマンドの例

  2. Linux での ln コマンドの例

  3. Linux での file コマンドの例

  1. Linuxでの8つのStatコマンドの例

  2. Linuxテールコマンド

  3. Linuxタッチコマンド