tail ファイルの末尾部分を表示する
tail [オプション] [ファイル...]試してみる
tail access.log何も指定しないと、末尾の10行を表示します。このログは6行なので全部出ます。
tail -n 2 access.log末尾の2行だけ表示します。
tail -n +5 access.log5行目から最後までを表示します。+ を付けると「何行目から」の意味になります。
tail -c 30 access.log; echo末尾の30バイトを表示します。
tail -n 1 access.log | cut -d' ' -f1最後の行の、先頭の項目(IPアドレス)だけを取り出します。
timeout 2 tail -f access.log | head -n 1-f は追記を待ち続けるので、timeout で2秒後に止めます。head で先頭の1行だけ見ています。
主なオプション
-n 数 | 末尾から指定した行数を表示する(既定は10) |
|---|---|
-n +数 | 指定した行目から最後まで表示する |
-c 数 | 末尾から指定したバイト数を表示する |
-f | ファイルへの追記を待ち続け、増えた行を表示する |
-F | -f に加えて、ファイルが作り直されても追いかける |
解説
基本
tail はファイルの末尾から、既定で10行を表示します。最新の記録が下に追記されるログの確認に向いています。
+数と数の違い
-n 5 は「末尾の5行」ですが、-n +5 は「5行目から最後まで」です。ヘッダー行を飛ばして中身だけ取り出したいときは、tail -n +2 を使います。
ログの監視
-f を付けると、表示したあとも終了せず、ファイルに行が追加されるたびに表示します。止めるには Ctrl+C を押します。ログローテーションでファイルが新しく作り直される場合は、-F なら追いかけ直してくれます。
head との組み合わせ
head -n 5 | tail -n 1 のように、2つをつなげると途中の行を取り出せます。この例では5行目です。