tailコマンド
- tailコマンドでファイルの末尾部分だけを表示する
- ログファイルを監視する
- ファイルの特定の範囲の行を取り出す(headとtail)
概要
headコマンドとは逆に、ファイルの末尾だけ表示するのがtailコマンドです。
ログファイルは、基本ファイルの末尾に新たな記録が追加されます。
「more」コマンドや「less」コマンドで表示しようとすると、末尾まで進むのが面倒だし、ファイルが大きい場合は読み込むのにも時間がかかります。
「tail」コマンドは、ファイルの末尾開かないので手軽で処理も高速です。
$ cat <ファイル名> | tail
tailコマンドも、headコマンド同様、「-n」オプションで表示する行数を指定することができます。
$ cat <ファイル名> | tail -n10
また、tailコマンド最大の魅力は リアルタイムに出力を追記する tail -fです。
ログ監視などに多用されるこの具体例も以下に示します。
$ sudo tail -f /var/log/httpd/access_log
tailコマンドの書式
tail [オプション] ファイル名
tailコマンドの主なオプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-c 数字 | –bytes 数字 | 末尾の指定したバイト数のみ表示する。「-c 5 b」のように単位を付加することも可能(b=512, KB=1000, K=1024, MB=10001000, M=10241024…) |
-n 数字 | –lines 数字 | 末尾の指定した行数のみ表示する |
-q | –quiet, –silent | ファイルごとのヘッダ表示を行わない(複数ファイル指定時に使う) |
-v | –verbose | 常にファイルごとのヘッダ出力を行う |
-f | –follow | ファイルを監視して内容が追加されるたびに末尾に表示する(ログ監視などに使用する。[Ctrl]+[C]キーで終了) |
tailコマンド詳細説明
tailコマンドでファイルの末尾部分だけを表示する
ファイルの末尾を表示します。tail -n で表示行数を変更できます。
tail -n10 と デフォルトの tail は同じ出力となります。
$ cat filename | tail -n10
ログファイルを監視する
tailコマンドの「-f」オプションを使うと、ログファイルのように、刻々と内容が追加されていくファイル監視ができるようになります。「-f」は、ファイルなどを監視する際、内容が新たに追加されるたびに末尾に表示するオプションです。ログの監視を終了するには、[Ctrl]+[C]キーを押します。
$ sudo tail -f /var/log/httpd/error_log
- ヒント
- tail -f コマンドはとてもよく使います。
- tail -f を実行するtailf コマンドもあります。(Oによりますが)
ファイルの特定の範囲の行を取り出す(headとtail)
ファイル後ろの200行目のところから、ファイル先頭に向かって100行を取り出すにはどうしたらよいか?
cat filename | tail -n200
これだとファイル末尾から200行を出力するにすぎない。
tail コマンドのみに頼ろうとすると難しいようだ。
実は、head コマンドも使えば、「後ろ200行の先頭100行」を取り出せる。
$ cat filename | tail -n200 | head -n 100
コマンドの実行結果の10001行目から10100行目までが欲しい時は以下の通り。
$ cat filename | head -n10100 | tail -n100