tail - ファイルの最後の部分を表示する

スポンサーリンク

tailコマンドは、ファイルの最後の部分を表示するコマンドになります。ファイルの終わりから10行までの部分を表示し、-nオプションでファイルの終わりから指定した行数まで表示することができます。ログ(log)ファイルはファイルに追記されて記録されます。なので、tailコマンドを用いれば、最新の記録を確認することが出来ます。

終わりから10行を表示
(オプションなし)

tailコマンドはオプションなしで使用すると、ファイルの終わりから10行の部分を表示します。

コマンド例

itemtext.txt

実行結果

複数のファイルが指定された場合はヘッダーにファイル名を表示します。

コマンド例

実行結果

終わりから指定した行数まで表示
(-nオプション)

-nオプションを用いるとファイルを終わりから指定した行数まで表示することができます。

コマンド例

実行結果

-nオプションは、プラスの記号を付けた数字を指定することができます。
その場合、指定した数字の行数からファイルの内容を表示します。

コマンド例

実行結果

終わりから指定したバイト数まで表示
(-cオプション)

-cオプションを用いるとファイルを終わりから指定したバイト数まで表示することができます。

コマンド例

実行結果

-cオプションは、プラスの数字を指定することができます。
その場合、指定したバイト数からファイルの内容を表示します。

コマンド例

実行結果

また、数字を指定する際には以下の単位等を利用することができます。
よく使われる単位

単位数値意味
b512blocks
KB1000kiloBytes
K1024KibiBytes
MB1000*1000MegaBytes
M1024*1024MebiBytes
GB1000*1000*1000GigaBytes
G1024*1024*1024GibiBytes

ヘッダーにファイル名を表示
(-vオプション)

-vオプションはヘッダーとしてファイル名を表示します。

コマンド例

実行結果

ヘッダーにファイル名を表示しない
(-qオプション)

-qオプションはヘッダーとしてファイル名を表示しません。

コマンド例

実行結果

追記されるファイルを確認
(-fオプション,--followオプション)

-fオプション(--followオプション)は追記されるファイルを確認するのに便利なオプションになります。例えば、ログを記録しているようなファイルを確認するときなどに利用できます。

ロングオプションの--followオプションを利用する時、オプションの値として'descriptor'と'name'を利用できます。-fオプションを利用する時などの値を指定しない場合はデフォルトとして'descriptor'が指定されます。

'descriptor'の動作は、追記されるファイルの名前が変更された場合でも、継続してそのファイルの内容を確認します。
'name'の動作は、追記されるファイルの名前が変更された場合、そのファイルの内容を確認するのではなく、指定したファイル名の名前を確認します。

また、終了する場合はCtrl+cで終了します。

コマンド例

growfile_descriptor.sh(バックグラウンドで動作,Ctrl+cで終了)

実行結果(gifファイル)

tail_foption_descriptor_web

--followオプションで何度もファイルオープンを試みる
(--retryオプション)

--retryオプションは指定したファイルを何度もファイルオープンと試みます。つまり、このオプションを使用した場合、指定したファイルが存在しない場合でも'tail -f'を使用することができます。

'--follow=descriptor'の場合は、最初のファイルオープンに成功するまで、何度もファイルを開こうとします。
'--follow=name'の場合は、無制限に何度もファイルを再オープンします。

--follow=name --retryと等価なオプション
(-Fオプション)

-Fオプションは--follow=nameと--retryオプションを同時に使ったものと同じオプションになります。指定したファイル名のファイルが追記されるとその内容が表示されていきます。

コマンド例

growfile_name.sh(バックグラウンドで動作,Ctrl+cで終了)

実行結果(画像)

tail_follow_name

-fオプションで指定したプロセスが終了するときにtailも終了
(--pidオプション)

--pidオプションは指定したプロセスが終了したときに、-fオプションをつけて動作しているtailコマンドを終了するオプションになります。

コマンド例

growfile_pid.sh

実行結果(画像)

tail_pidopt

$!の変数は直前に実行したバックグラウンドのプロセスIDに展開されます。

参考

GNU Coreutils: tail invocation