stat -fオプションの使い方を完全ガイド!初心者でもわかるファイルシステム情報の確認方法
生徒
「先生、Linuxでファイルの情報を見るstatコマンドってありますよね?-fオプションって何のために使うんですか?」
先生
「良い視点ですね。-fオプションは、ファイル自体ではなく、そのファイルが置かれているファイルシステムの情報を見るためのものです。」
生徒
「ファイルシステムって何ですか?それを見てどうするんですか?」
先生
「わかりました。ファイルシステムについても、ゆっくり説明しますね!」
1. statコマンドとは?
Linuxにおけるstat(ステート)コマンドは、ファイルやディレクトリの詳細情報を表示するためのコマンドです。通常は、そのファイル自身の「最終更新日時」「サイズ」「所有者」などを確認するために使用しますが、-fオプションを使うと、ファイルが存在するファイルシステムの情報を見ることができます。
2. ファイルシステムとは?
ファイルシステムとは、Linuxや他のOSでファイルを管理・保存する仕組みのことです。簡単に言えば、ファイルをどのように配置し、どのように記録するかを決める「ルール」です。例えば、USBメモリやHDDの中には「ext4」や「xfs」などのファイルシステムがあります。
ファイルがどんなファイルシステム上にあるかを知ることで、対応している機能や制限(ファイル名の長さ、最大サイズなど)を確認できるようになります。
3. stat -fオプションの基本的な使い方
-fオプションを使うと、ファイルやディレクトリが保存されているファイルシステムの統計情報を表示します。以下が基本的な使い方です。
stat -f index.html
File: "index.html"
ID: b1c2d3e4 Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 524288 Free: 512000 Available: 511000
Inodes: Total: 131072 Free: 130000
このように、ファイルシステムの種類(Type)、使用可能なブロック数(Available)、ブロックサイズ(Block size)などが表示されます。
4. stat -fで確認できる主な項目
それぞれの出力項目について初心者向けにやさしく説明します。
- Type: ファイルシステムの種類(例:ext4、xfsなど)。これによりファイル保存の特性が異なります。
- Block size: ファイルが保存されるときの単位サイズ。これは効率や容量に影響します。
- Available: 現在使える空き容量(ブロック数)。ディスク残量のようなものです。
- Inodes: Linuxでファイルを管理するための「住所」のような仕組みで、これが足りないと空き容量があっても新しいファイルが作れません。
5. stat -fとstat(通常使用)の違い
statだけで実行すると、以下のようにファイル自身の情報が表示されます。
stat index.html
File: index.html
Size: 2048 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 123456 Links: 1
Access: 2025-09-01 12:00:00.000000000 +0900
Modify: 2025-09-01 11:00:00.000000000 +0900
Change: 2025-09-01 11:30:00.000000000 +0900
このように、statは「ファイルそのものの属性」を見るのに対し、stat -fは「そのファイルが置かれている土台(ファイルシステム)」を見るという違いがあります。
6. stat -fとdfコマンドとの違い
Linuxでは、ディスクの空き容量を見るためにdfコマンドもよく使います。
df index.html
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20971520 1048576 19922944 5% /
このように、dfは全体の使用量とマウントポイントなどを表示しますが、stat -fはより詳細な構造情報(inodes、ブロックサイズなど)を教えてくれます。どちらも補完的に使うと便利です。
7. stat -fと--format(-c)オプションの組み合わせ
statコマンドは--formatまたは-cオプションを使って出力の形式をカスタマイズできます。-fと組み合わせると、特定の情報だけを抜き出して見ることができます。
stat -f -c "%T" index.html
ext2/ext3
このように、%Tを指定することでファイルシステムの種類だけを表示することができます。スクリプトやログに使うときに便利です。
8. stat -fを使うタイミングと活用例
stat -fは、以下のような場面で役立ちます。
- ファイルがどのファイルシステムにあるか確認したいとき
- 空き容量が足りない原因を調べるとき(inodes不足など)
- スクリプトでファイルシステムごとの処理を分けたいとき
特に複数のHDDやSSD、USBメモリなどを使っている環境では、どこに保存されているかを意識することがトラブル防止につながります。