ホーム > ファイル・ディレクトリ管理 > stat

stat: ファイル情報をカスタムフォーマットで表示

`stat`コマンドは、ファイルまたはファイルシステムの詳細な状態情報を表示します。特に`-c`(または`--format`)オプションを使用すると、ファイルサイズ、パーミッション、所有者、時間情報などをユーザーが指定したフォーマットで抽出できるため、スクリプトやレポート作成に非常に役立ちます。

概要

`stat`コマンドは、ファイルのinode情報(メタデータ)を表示します。`-c`オプションにより、これらの情報をユーザー定義のフォーマットで出力できるため、特定の属性のみを抽出したり、他のコマンドと組み合わせて使用したりするのに適しています。

主な特徴

  • ファイルおよびファイルシステムの詳細なメタデータの表示
  • `-c`オプションによるカスタム出力フォーマットのサポート
  • スクリプトおよび自動化タスクに便利
  • さまざまなファイル属性(サイズ、パーミッション、所有者、時間など)へのアクセス

主なオプション

`stat`コマンドの核となる`-c`オプションと共に使用される主なフォーマット指定子です。

フォーマット指定オプション

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`stat` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

`stat -c`オプションを活用して、ファイル情報をさまざまなフォーマットで出力する例です。

ファイル名とサイズを出力

stat -c '%n %s' my_file.txt

指定されたファイルのファイル名とサイズをスペースで区切って出力します。

ファイルタイプとパーミッションを出力

stat -c '%F %A' my_script.sh

ファイルのタイプと、人間が読める形式のパーミッションを出力します。

所有者、グループ、最終更新時刻を出力

stat -c 'Owner: %U, Group: %G, Modified: %y' my_document.pdf

ファイルの所有者名、グループ名、最終更新時刻を特定の文字列と共に表示します。

シンボリックリンクの対象を確認

stat -c '%N' my_symlink

シンボリックリンクの場合、リンクされた元のファイルのパスを含めて出力します。

現在のディレクトリのすべてのファイル/ディレクトリ名とサイズを出力

stat -c '%n %s' *

ワイルドカードを使用して、現在のディレクトリ内のすべての項目について、名前とサイズを出力します。

ヒントと注意点

`stat -c`をより効果的に使用するためのヒントと注意点です。

引用符の使用

FORMAT文字列にスペースや特殊文字が含まれる場合、シェルがそれらを別の引数として解釈しないように、シングルクォート(')またはダブルクォート(")で囲む必要があります。

  • シングルクォート('): 変数展開を防ぎ、文字列をそのまま渡す場合に便利です。
  • ダブルクォート("): 変数展開を許可しつつ、文字列をまとめる場合に使用します。

時刻フォーマット

時刻関連の指定子(%x, %y, %z)は、デフォルトで人間が読める形式で出力されます。秒単位のタイムスタンプを取得するには、`%X`, `%Y`, `%Z`を使用してください。

findコマンドとの組み合わせ

find . -maxdepth 1 -type f -exec stat -c '%n %s' {} \;

`find`コマンドの`-exec`オプションと組み合わせて、特定の条件に一致するファイルに対して`stat -c`を実行できます。

OSごとの違い

一部のフォーマット指定子は、オペレーティングシステムや`stat`のバージョンによって動作が異なったり、サポートされていなかったりする場合があります。例えば、`%w`(作成時刻)指定子は、Linuxでは一般的にサポートされておらず、macOS/BSDでのみ使用可能です。

  • Linux: 主に`coreutils`パッケージに含まれる`stat`バージョンを使用します。
  • macOS/BSD: 一部のフォーマット指定子(例: `%w`)の動作が異なる場合があります。

同じカテゴリのコマンド