カテゴリ: Linuxコマンド集 更新日: 2026/02/07

stat -cオプションの使い方を徹底解説!Linuxで出力フォーマットを自由に指定しよう

stat -cオプション|出力フォーマットを指定して表示する
stat -cオプション|出力フォーマットを指定して表示する

先生と生徒の会話形式で理解しよう

生徒

「statコマンドで表示される情報って多すぎて見づらいです…。必要な部分だけ表示できませんか?」

先生

「そのときに便利なのが、-cオプションです!出力内容を好きな形式で指定できるんですよ。」

生徒

「えっ、そんなことができるんですか!?使い方を教えてください!」

先生

「それでは、stat -cの基本から応用まで一緒に見ていきましょう!」

1. statコマンドとは?ファイルのステータスを確認する基本

1. statコマンドとは?ファイルのステータスを確認する基本
1. statコマンドとは?ファイルのステータスを確認する基本

stat(スタット)コマンドは、Linuxにおいてファイルやディレクトリの「詳細な状態(ステータス)」を表示するための強力なツールです。プログラミング未経験の方には「ファイルの健康診断書」のようなものだとイメージすると分かりやすいでしょう。

通常、ファイルを確認する際はlsコマンドを使いますが、statを使えば、ファイルサイズや更新日時だけでなく、システムの内部管理番号である「iノード番号」や、詳細な「タイムスタンプ(アクセス・更新・変更)」など、より専門的な情報を一目で確認できます。

初心者向けポイント
ls -lで見える情報はごく一部です。statを使えば、そのファイルがいつ作られ、最後に誰が触れたのかという「裏側の情報」まで丸見えになります。

まずは、一番シンプルな実行例を見てみましょう。引数に調べたいファイル名を指定するだけでOKです。


stat test.txt
  File: test.txt
  Size: 1024      	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 123456      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/    user)   Gid: ( 1000/    user)
Access: 2026-02-04 08:00:00.000000000 +0900
Modify: 2026-02-04 08:30:00.000000000 +0900
Change: 2026-02-04 08:30:00.000000000 +0900
 Birth: -

このように、一度の実行で膨大なデータが表示されます。しかし、情報が多すぎて「特定の数値だけを抽出して自動化に使いたい」といった場合には、少し見づらく感じてしまうかもしれません。そこで活躍するのが、今回詳しく解説する-cオプションです。

2. -cオプションで出力フォーマットを指定しよう

2. -cオプションで出力フォーマットを指定しよう
2. -cオプションで出力フォーマットを指定しよう

-c(または--format)オプションを使うことで、表示したい情報だけをカスタマイズして出力することができます。これは「書式指定子(フォーマット指定)」と呼ばれる記号を使って出力形式を定義する仕組みです。

たとえば、ファイル名とファイルサイズだけを表示したいときは次のように書きます。


stat -c "%n %s" test.txt
test.txt 1024

ここで使われている%nは「ファイル名」、%sは「ファイルサイズ(バイト単位)」を意味します。

3. よく使うフォーマット指定子まとめ

3. よく使うフォーマット指定子まとめ
3. よく使うフォーマット指定子まとめ

ここでは、初心者が覚えておくと便利な代表的な書式指定子を紹介します。

  • %n:ファイル名
  • %s:ファイルサイズ(バイト)
  • %F:ファイルの種類(regular file、directoryなど)
  • %a:アクセス権(8進数)
  • %A:アクセス権(記号表記)
  • %U:所有者(ユーザー名)
  • %G:所有グループ
  • %y:最終更新時刻

たとえば、「ファイル名、ファイルの種類、アクセス権(記号)、所有者、サイズ」を一行で表示したい場合は次のように書きます。


stat -c "%n %F %A %U %s" test.txt
test.txt regular file -rw-r--r-- user 1024

4. 改行やスペースの調整も自由自在

4. 改行やスペースの調整も自由自在
4. 改行やスペースの調整も自由自在

-cオプションの書式は文字列なので、途中にスペースや改行記号(\n)を入れることで、出力の見た目を自由に調整できます。


stat -c "ファイル名: %n\nサイズ: %s バイト\n更新日時: %y" test.txt
ファイル名: test.txt
サイズ: 1024 バイト
更新日時: 2024-09-15 10:15:30.123456789 +0900

このように、日本語を混ぜた出力にすることで、スクリプトやレポート作成時にも便利です。

5. 複数ファイルにも使える

5. 複数ファイルにも使える
5. 複数ファイルにも使える

stat -cは、複数のファイルに対して一括で情報を取得することもできます。


stat -c "%n,%s" *.txt
file1.txt,2048
file2.txt,1024
file3.txt,512

このように、CSV形式で出力すれば、Excelなどに貼り付けるのも簡単です。

6. statとlsの違いを知っておこう

6. statとlsの違いを知っておこう
6. statとlsの違いを知っておこう

「ファイルの詳細を確認する」といえばls -lを思い浮かべる人も多いかもしれません。たしかにlsコマンドも便利ですが、以下のような違いがあります。

  • lsは一覧表示が得意。内容は固定。
  • statは詳細で正確な情報が見られる。-cでフォーマット自由自在。

つまり、「一覧でざっくり確認」はls、「正確に必要な情報をピンポイントで取得」はstatが得意ということです。

7. スクリプトで使うときにも便利

7. スクリプトで使うときにも便利
7. スクリプトで使うときにも便利

シェルスクリプトなどでファイルのサイズを取得して条件分岐するような処理を書くとき、stat -cは非常に有用です。たとえば次のようなスクリプトが考えられます。


size=$(stat -c "%s" test.txt)
if [ "$size" -gt 1000 ]; then
  echo "ファイルサイズが1000バイトを超えています"
fi

stat -cで得られた情報は変数として扱えるため、処理の自動化にもぴったりです。

8. 書式に関する注意点

8. 書式に関する注意点
8. 書式に関する注意点

フォーマット内にスペースや記号を含めたい場合は、必ず全体をダブルクオーテーション")で囲みましょう。また、複数のファイルを対象にするときはワイルドカード(*.txt)を使うと便利です。

なお、%の後に無効な文字を使うとエラーになりますので注意してください。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
touch --versionオプションの使い方を完全ガイド!初心者でもわかるバージョン確認方法
New2
ファイル・ディレクトリ操作
find -deleteオプションを完全解説!初心者でもできるLinuxファイル削除の基本
New3
ファイル・ディレクトリ操作
mv --helpオプションの使い方|Linuxでmvコマンドの使い方やオプションを確認する方法
New4
ファイル・ディレクトリ操作
rm --versionオプションの使い方!Linuxでバージョン情報を確認する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
basenameの--helpオプションを使ってヘルプ表示!オプション一覧でLinuxコマンドを理解しよう
No.4
Java&Spring記事人気No4
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!