【テール】

tail とは?

最終更新:
💡 末尾を見る。追記を追う方法も選べる

ファイルの末尾を表示するUnix系コマンド。GNU版を例に、表示行数、追記の確認、ログが切り替わるときの-fと-Fの違いを解説します。

📌 このページのポイント
GNU tail:元のファイル?同じ名前?追っていたapp.logを改名同じ名前で、新しいapp.logを作るtail -f app.log元のファイル既定:開いたファイル改名後も同じものを追うtail -F app.log新しいapp.log名前で追う+再試行同じ名前の新しいものへ-F は --follow=name --retry表示の追跡で、保存や収集の保証ではない
ログが改名され、同じ名前の新しいファイルができる例です。GNU版の動作で、ほかの実装はマニュアルを確認します。通常のtailは末尾10行を表示し、-f等は追記を待って表示します。
ひよこ ひよこ
tailは、ファイルを書き換える?
ペンギン先生 ペンギン先生
基本的には読むためのコマンドだよ。「tail app.log」で、末尾の10行を表示する。ログの新しい記録を確認するなどの用途があるんだ。
ひよこ ひよこ
もっと多くの行を見たいときは?
ペンギン先生 ペンギン先生
「tail -n 50 app.log」なら末尾50行。「tail -n +100 app.log」なら先頭から数えて100行目以降を表示する。数字の前のプラスで、意味が変わるよ。
ひよこ ひよこ
追記された内容も見られる?
ペンギン先生 ペンギン先生
「tail -f app.log」で追記を待って表示できる。確認を終えるならCtrl+Cで止めよう。ただし表示のタイミングは、ファイルへの書き込みや実装にも関係する。必ず遅延ゼロという意味ではないんだ。
ひよこ ひよこ
ログのファイルが切り替わっても追う?
ペンギン先生 ペンギン先生
GNU版の-fは既定で開いたファイルを追うので、名前が変わっても元のファイルを見続ける。-Fは「名前で追う」と「開けなければ再試行」の組み合わせだよ。名前が同じで作り直されるログには、その違いが大切なんだ。
ひよこ ひよこ
エラーの行だけ見たいな。
ペンギン先生 ペンギン先生
GNU grepなら「tail -F app.log | grep --line-buffered ERROR」のような例がある。大文字のERRORを含む行を選び、grepの出力を行単位にする。絞り込みで前後の情報を失うこともあるので、必要なら元のログも確認しよう。
もっと詳しく知りたい人へ

-fと-Fは、どのOSでも同じ?

ここではGNU Coreutilsのtailを例にしています。Unix系でも実装によって対応オプションや動作が異なるため、使う環境のマニュアルを確認します。

-Fなら、ログをすべて保存できる?

tailは追記を表示するための道具で、ログを確実に保管する仕組みではありません。ファイルの切り替わりや削除、監視を始める時点も関係します。保存や収集は別に設計します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「tail」って出てきたら「ファイルの末尾を見たり、追記を追ったりするコマンド」と思えばだいたいOK!
📖 おまけ:英語の意味
「tail」 = 尻尾・末尾
💬 ファイルの末尾を表示します。先頭を見るheadと対にして覚えられます。

参考資料

← 用語集にもどる