カテゴリ: Linuxコマンド集 更新日: 2025/12/03

stat --formatオプションの使い方を完全ガイド!初心者でもわかるファイル情報のカスタム表示

stat --formatオプション|-cと同じく出力フォーマットを設定する方法
stat --formatオプション|-cと同じく出力フォーマットを設定する方法

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

生徒

「statコマンドって、ファイルの情報がたくさん表示されて見にくいです…。必要な情報だけ表示する方法はありますか?」

先生

「それなら、--formatオプションを使えば、自分で表示形式をカスタマイズできますよ。」

生徒

「えっ、そんなことができるんですか!?どんな風に使うんですか?」

先生

「それでは、--formatオプションの使い方を一緒に学んでいきましょう!」

1. statコマンドと--formatオプションとは?

1. statコマンドと--formatオプションとは?
1. statコマンドと--formatオプションとは?

stat(スタット)コマンドは、Linuxでファイルやディレクトリの詳細な情報を表示するコマンドです。ファイルサイズ、更新日時、アクセス権、オーナー、グループなどが一覧で表示されます。

ただし、表示される情報が多いため、初心者にはどこを見ればよいか分かりづらいことがあります。そんなときに便利なのが--formatオプションです。

--formatは、表示したい情報だけを選んで表示できるオプションで、同じ意味を持つ-cの別表記になります。つまりstat -cstat --formatは同じ動作をします。

2. --formatオプションの基本的な使い方

2. --formatオプションの基本的な使い方
2. --formatオプションの基本的な使い方

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


stat --format="%n %s" test.txt
test.txt 1024

%nはファイル名、%sはファイルサイズ(バイト)を表す書式指定子(しょしきしていし)です。

3. よく使う書式指定子の一覧

3. よく使う書式指定子の一覧
3. よく使う書式指定子の一覧

以下のような書式指定子を組み合わせて、自分の欲しい情報だけを表示できます。

  • %n:ファイル名
  • %s:ファイルサイズ(バイト)
  • %F:ファイルの種類(通常ファイル、ディレクトリなど)
  • %A:アクセス権(記号形式)
  • %a:アクセス権(数値形式)
  • %U:所有者(ユーザー名)
  • %G:所有グループ
  • %y:最終更新日時

たとえば次のように書けば、ファイル名・所有者・更新日時を一行で表示できます。


stat --format="%n %U %y" test.txt
test.txt user1 2025-09-16 13:10:22.000000000 +0900

4. 日本語を混ぜて見やすくする

4. 日本語を混ぜて見やすくする
4. 日本語を混ぜて見やすくする

書式の中に日本語や改行を入れると、さらに分かりやすくなります。たとえば、次のように書くと見やすくなります。


stat --format="ファイル名: %n\nサイズ: %s バイト\n種類: %F" test.txt
ファイル名: test.txt
サイズ: 1024 バイト
種類: regular file

\nは「改行」を意味します。改行を入れることで、縦に整った見やすい形式になります。

5. 複数ファイルへの応用もできる

5. 複数ファイルへの応用もできる
5. 複数ファイルへの応用もできる

--formatオプションは、複数ファイルに対しても使えます。たとえば、拡張子.logのファイルサイズ一覧を表示したい場合は以下のようにします。


stat --format="%n,%s" *.log
app.log,2560
error.log,4096

カンマ区切り(CSV形式)で出力すれば、表計算ソフトにもコピーしやすくなります。

6. --formatと-cの違いは?

6. --formatと-cの違いは?
6. --formatと-cの違いは?

--format-cは、どちらも同じ機能を持っています。違いは表記の仕方だけです。

  • -c:短い書き方(ショートオプション)
  • --format:長い書き方(ロングオプション)

どちらを使っても同じ結果になりますが、初心者には意味が分かりやすい--formatの方がおすすめです。

7. スクリプトや自動処理にも活用できる

7. スクリプトや自動処理にも活用できる
7. スクリプトや自動処理にも活用できる

--formatオプションで出力を制御すれば、シェルスクリプトでの処理も効率よくできます。たとえば、ファイルサイズが1000バイト以上かを調べるスクリプトはこう書けます。


size=$(stat --format="%s" test.txt)
if [ "$size" -ge 1000 ]; then
  echo "ファイルサイズが1000バイト以上です"
fi

このように、数値だけを抽出して使えるのも--formatの大きなメリットです。

8. format指定の注意点

8. format指定の注意点
8. format指定の注意点

書式文字列を指定する際は、ダブルクオーテーション(")で囲むことを忘れないようにしましょう。特に\nなどの特殊文字を含む場合、クオートしないと意図しない動作になることがあります。

また、誤った書式指定子(存在しない%記号)を使うとエラーになるため、必ず正しいものを使いましょう。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説