Linuxでは、物事を成し遂げるための独創的な方法が常にあるようです。どのタスクでも、より良い方法で実行するためのコマンドラインユーティリティは常に複数あります。 Linux statコマンドは、ファイルに関する詳細情報を表示するために使用されるコマンドラインツールです。このガイドでは、Linuxでの8つのstatコマンドの使用法に焦点を当てています。これはすべてのLinuxディストリビューションで機能します。
Linuxstatコマンド
statコマンドは、ls-lコマンドのより良いバージョンと考えてください。 -lフラグは、ファイルの所有権やアクセス許可などのファイルに関する詳細を提供しますが、statコマンドは内部でさらに深くなり、ファイルに関する豊富な情報を提供します。
Linuxstatコマンドの構文は次のとおりです。
$stat[OPTION]ファイル名
1)引数のないStatコマンド
最も単純な形式(パラメーターなし)では、statコマンドはデフォルトの出力を表示します。これには、ファイルのサイズとタイプ、デバイスタイプ、iノード番号、UID、GID、リンクの数、ファイルのアクセス/変更日が含まれます。
たとえば、現在のホームディレクトリにあるファイルのファイルの詳細を表示するには、次のコマンドを実行します。
$ stat file1.txt
出力を具体化しましょう:
- ファイル:ファイルの名前が表示されます。
- サイズ:ファイルのサイズ(バイト単位)。
- ブロック:ファイルに割り当てられたブロックの数。
- IOブロック:これはすべてのブロックのバイトサイズです。
- デバイス:16進数または10進数形式のデバイス番号。
- inode:これはファイルのiノード番号です。
- リンク:ファイルに関連付けられているハードリンクの数。
- アクセス:記号形式または数値形式のファイル権限。
- Uid:ユーザーIDと所有者の名前。
- Gid:グループIDと所有者の名前。
- コンテキスト:SeLinuxセキュリティコンテキスト
- ファイルタイプ:ファイルのタイプ(通常のファイル、シンボリックリンクなど)を示します。
- アクセス:ファイルが最後にアクセスされた時刻を表示します。
- 変更:ファイルの内容が最後に変更された時刻を表示します。
- 変更:ファイルのメタデータ(権限や所有権など)が最後に変更された時刻を表示します。
2)複数のファイルに関する情報を表示する
図のようにコマンドラインでファイルを次々に指定することで、複数のファイルに関する詳細なレポートを表示できます。
$ stat file1.txt file2.pdf
3)ファイルシステムのステータスを表示する
図のように-fオプションを使用すると、ファイルが置かれているファイルシステムのステータスを確認できます。これにより、ブロックサイズ、合計および使用可能なメモリが提供され、いくつかの属性について言及できます。
$ stat -f /home
4)情報を簡潔な形式で表示する
-tオプションは、次のように情報を簡潔な形式で表示するために使用されます。
$ stat -t file1.txt
5)シンボリックリンクのフォローを有効にする
通常、シンボリックリンクでstatコマンドを実行すると、リンクに関する情報のみが表示され、リンクが指すファイルは表示されません。たとえば、/ usr / share / zoneinfo / America/Caymanシンボリックリンクを取り上げます。
$ stat /usr/share/zoneinfo/America/Cayman
上記の例では、シンボリックリンク/ usr / share / zoneinfo / America / Caymanは(->)パナマを指しています。シンボリックリンクはわずか6バイトです。
リンクが指すファイルに関する情報を取得するには、逆参照とも呼ばれる-Lオプションを使用します。 オプション。
$ stat -L /usr/share/zoneinfo/America/Cayman
これにより、出力にリンクが示されていても、リンクではなくファイルに関する情報が表示されるようになりました。これは、statコマンドで引数として渡したためです。
6)フォーマットシーケンス
前の例から、statコマンドが端末に大量の情報を出力することを確認しました。特定の情報が必要な場合は、フォーマットシーケンスを使用して出力をカスタマイズし、必要な情報を正確に提供し、その他の詳細を残すことができます。
出力のカスタマイズに使用される一般的な式には、–printfまたは–formatオプション
があります。たとえば、ファイルのiノードのみを表示するには、次のように%i形式のシーケンスを使用します。 \nオペランドは新しい行を出力します。
$ stat --printf='%i\n' file1.txt
アクセス権とuid(ユーザーID)を表示するには、%aおよび%u形式のシーケンスを使用します。
$ stat --printf='%a:%u\n' file1.txt
–formatオプションは、追加のオペランドを必要とせずに新しい行を出力します。
$ stat --format='%a:%F' file1.txt
使用できるフォーマットシーケンスの完全なリストは次のとおりです。
- %aアクセス権を8進数で表示します。
- %A人間が読める形式でアクセス権を表示します。
- %bこれは割り当てられたブロックの数です(%Bを参照)。
- %B%bによって報告された各ブロックのバイト単位のサイズ。
- %CSELinuxセキュリティコンテキスト文字列を表示します。
- %dデバイス番号を10進形式で表示します。
- %D16進形式のデバイス番号。
- %frawモードを16進数で表示します。
- %Fファイルタイプを表示します。
- %g所有者のグループIDを出力します。
- %G所有者のグループ名を出力します。
- %hハードリンクの数を表示します。
- %iiノード番号を出力します。
- %mマウントポイントを印刷します。
- %nファイルのファイル名を表示します
- %Nシンボリックリンクの場合、間接参照付きで引用符で囲まれたファイル名を表示します
- %o最適なI/O転送サイズのヒントを出力します。
- %s合計サイズ(バイト単位)。
- %t 16進数の主要なデバイスタイプ、文字/ブロックデバイスの特殊ファイル用
- %T 16進数のマイナーデバイスタイプ、文字/ブロックデバイスの特殊ファイル用
- %u所有者のユーザーIDを表示します。
- %U所有者のユーザー名を出力します。
- %w人間が読める形式のファイルの作成時刻を明らかにします。 –不明な場合。
- %Wファイルの誕生時刻(エポックからの秒数)を出力します。不明な場合は0。
- %x人間が読める形式の最後のアクセス時刻。
- %X最後のアクセスの時間(エポックからの秒数)。
- %y人間が読める形式で、最後に変更された時刻を表示します。
- %Y最後の変更時刻(エポックからの秒数)を出力します。
- %zこれは最後の変更の時間であり、人間が読める形式です。
- %Z最後の変更時刻(エポックからの秒数)。
7)statコマンドのヘルプを取得する
その他のコマンドオプションについては、図のようにstatコマンドで–helpオプションを使用してください。
$ stat --help
statコマンドのマニュアルページにアクセスして、実行することもできます
$ man stat
8)統計のバージョンを確認する
最後に、statコマンドのバージョンを確認するには、次のコマンドを実行します。
$ stat --version
これが、このガイドで用意されているものです。ご覧のとおり、statコマンドは、lsコマンドが提供するものを超えており、ファイルまたはファイルシステムに関する詳細情報を収集するのに理想的です。
また読む :14Linuxでの便利な「ls」コマンドの例