stat 概要
`stat` コマンドは、ファイルやディレクトリ自体の内容ではなく、ファイルシステムがそのオブジェクトを管理するために保存しているメタデータを表示します。これは、ファイルの作成時刻、最終変更時刻、アクセス回数など、`ls -l` よりもはるかに詳細な情報を提供し、ファイルの変更履歴やアクセスパターンを分析する際に便利です。
stat の主要な役割
`stat` コマンドは主に次の目的で使用されます:
主要な活用分野
- **ファイル属性確認**: ファイルの所有権、権限、サイズなどを正確に確認します。
- **タイムスタンプ分析**: ファイルの作成、最終修正、最終アクセス時間などのさまざまな時間情報を確認し、ファイル変更履歴を追跡します。
- **シンボリックリンク情報**: シンボリックリンクの対象パスとリンク自体の情報をすべて確認します。
- **ファイルシステムデバッグ**: ディスクスペースの使用量、ブロック割り当て、inode情報などを通じてファイルシステムの問題を診断します。
stat 出力情報の理解
`stat` コマンドの出力はさまざまな項目で構成されます。各項目の意味を理解することが重要です。
主要出力項目
- File: 対象ファイルまたはディレクトリの名前です。
- Size: ファイルのサイズ(バイト)です。ディレクトリの場合、通常は4096バイトとして表示されます。
- Blocks: ファイルがディスクで占める512バイトブロックの数です。
- IO Block: ファイルのI/O操作を行う際に効率的なブロックサイズです。
- Type: ファイルのタイプを示します。例: regular file, directory, symbolic linkなど。
- Device: ファイルが存在するデバイスのID(major:minor)です。
- Inode: ファイルシステム内でファイルのユニーク識別子であるinode番号です。ハードリンクは同じinodeを共有します。
- Links: 対象ファイルに対するハードリンクの数です。
- Access: ファイルの権限(8進数およびrwx形式)です。
- Uid / Gid: ファイルの所有者(User ID)およびグループ(Group ID)とその名前です。
- Access / Modify / Change: `Access`: 最終アクセス時間(atime)、`Modify`: 最終修正時間(mtime)、`Change`: 最終変更時間(ctime)。 'Birth'は生成時間(crtime)であり、すべてのファイルシステムでサポートされない場合があります。
主要 stat コマンドオプション
`stat` コマンドは、出力形式を指定したり、シンボリックリンクを処理する方法を変更したりするなど、いくつかの便利なオプションを提供します。
1. 基本出力オプション
2. シンボリックリンク処理オプション
3. 出力形式指定オプション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`stat` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`stat` コマンドのさまざまな活用例を通じてファイル/ディレクトリの詳細属性を確認し、分析する方法を学んでください。
単一ファイルのすべての情報確認
stat config.ini
`config.ini` ファイルのサイズ、権限、所有者、タイムスタンプなど、すべての詳細情報を出力します。
シンボリックリンク自体の情報確認
stat -P mylink.sh
`mylink.sh` が `actual_script.sh` を指すシンボリックリンクである場合、`mylink.sh` 自体の情報を出力します。(リンクファイルのサイズ、所有者など)
シンボリックリンクが指す元ファイルの情報確認
stat -L mylink.sh
`mylink.sh` が `actual_script.sh` を指すシンボリックリンクである場合、`actual_script.sh` ファイルの情報を出力します。
特定情報をユーザー定義形式で出力
stat -c '%n %s %y' my_document.txt
`my_document.txt` ファイルの名前、サイズ(バイト)、および最終修正時間(YYYY-MM-DD HH:MM:SS)のみを出力します。
ファイルが属するファイルシステムの情報確認
stat --file-system /var/log
`/var/log` ディレクトリが位置するファイルシステムのタイプ、ブロックサイズ、マウントポイントなどの情報を確認します。
ファイルのユニックスタイムスタンプ (mtime) 確認
stat -c '%Y' important_data.csv
スクリプトでファイルの修正時間をユニックスタイムスタンプ(秒)として取得し、計算などに活用する際に便利です。