tailコマンドは、ファイルの最後の部分を表示するコマンドになります。ファイルの終わりから10行までの部分を表示し、-nオプションでファイルの終わりから指定した行数まで表示することができます。ログ(log)ファイルはファイルに追記されて記録されます。なので、tailコマンドを用いれば、最新の記録を確認することが出来ます。
目次
- 1 tailコマンドの利用例
- 1.1 終わりから10行を表示 (オプションなし)
- 1.2 終わりから指定した行数まで表示 (-nオプション)
- 1.3 終わりから指定したバイト数まで表示 (-cオプション)
- 1.4 ヘッダーにファイル名を表示 (-vオプション)
- 1.5 ヘッダーにファイル名を表示しない (-qオプション)
- 1.6 追記されるファイルを確認 (-fオプション,--followオプション)
- 1.7 --followオプションで何度もファイルオープンを試みる (--retryオプション)
- 1.8 --follow=name --retryと等価なオプション (-Fオプション)
- 1.9 -fオプションで指定したプロセスが終了するときにtailも終了 (--pidオプション)
- 2 参考
tailコマンドの利用例
終わりから10行を表示
(オプションなし)
tailコマンドはオプションなしで使用すると、ファイルの終わりから10行の部分を表示します。
コマンド例
1 |
tail itemtext.txt |
itemtext.txt ▼表示
実行結果
1 2 3 4 5 6 7 8 9 10 |
onion yuzu yuzu yuzu apple apple yuzu apple onion yuzu apple yuzu yuzu onion apple yuzu onion onion yuzu onion yuzu yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
複数のファイルが指定された場合はヘッダーにファイル名を表示します。
コマンド例
1 |
tail itemtext.txt itemtext.txt |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
==> itemtext.txt <== onion yuzu yuzu yuzu apple apple yuzu apple onion yuzu apple yuzu yuzu onion apple yuzu onion onion yuzu onion yuzu yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu ==> itemtext.txt <== onion yuzu yuzu yuzu apple apple yuzu apple onion yuzu apple yuzu yuzu onion apple yuzu onion onion yuzu onion yuzu yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
終わりから指定した行数まで表示
(-nオプション)
-nオプションを用いるとファイルを終わりから指定した行数まで表示することができます。
コマンド例
1 |
tail -n3 itemtext.txt |
itemtext.txt ▼表示
実行結果
1 2 3 |
yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
-nオプションは、プラスの記号を付けた数字を指定することができます。
その場合、指定した数字の行数からファイルの内容を表示します。
コマンド例
1 |
tail -n+25 itemtext.txt |
実行結果
1 2 3 |
yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
終わりから指定したバイト数まで表示
(-cオプション)
-cオプションを用いるとファイルを終わりから指定したバイト数まで表示することができます。
コマンド例
1 |
tail -c30 itemtext.txt |
itemtext.txt ▼表示
実行結果
1 2 |
uzu yuzu onion yuzu yuzu yuzu |
-cオプションは、プラスの数字を指定することができます。
その場合、指定したバイト数からファイルの内容を表示します。
コマンド例
1 |
tail -c+30 itemtext.txt |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
onion apple apple yuzu apple onion apple apple onion onion apple onion yuzu apple yuzu apple apple yuzu onion apple yuzu yuzu onion apple apple onion apple onion onion apple yuzu onion onion apple onion onion onion onion onion yuzu onion yuzu apple onion yuzu onion onion yuzu yuzu yuzu apple apple yuzu apple onion yuzu apple yuzu yuzu onion apple yuzu onion onion yuzu onion yuzu yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
また、数字を指定する際には以下の単位等を利用することができます。
よく使われる単位
単位 | 数値 | |
b | 512 | blocks |
KB | 1000 | kiloBytes |
K | 1024 | KibiBytes |
MB | 1000*1000 | MegaBytes |
M | 1024*1024 | MebiBytes |
GB | 1000*1000*1000 | GigaBytes |
G | 1024*1024*1024 | GibiBytes |
ヘッダーにファイル名を表示
(-vオプション)
-vオプションはヘッダーとしてファイル名を表示します。
コマンド例
1 |
tail -v -n3 itemtext.txt |
itemtext.txt ▼表示
実行結果
1 2 3 4 |
==> itemtext.txt <== yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
ヘッダーにファイル名を表示しない
(-qオプション)
-qオプションはヘッダーとしてファイル名を表示しません。
コマンド例
1 |
tail -q -n3 itemtext.txt itemtext.txt |
itemtext.txt ▼表示
実行結果
1 2 3 4 5 6 |
yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu yuzu yuzu apple yuzu yuzu onion yuzu yuzu yuzu |
追記されるファイルを確認
(-fオプション,--followオプション)
-fオプション(--followオプション)は追記されるファイルを確認するのに便利なオプションになります。例えば、ログを記録しているようなファイルを確認するときなどに利用できます。
ロングオプションの--followオプションを利用する時、オプションの値として'descriptor'と'name'を利用できます。-fオプションを利用する時などの値を指定しない場合はデフォルトとして'descriptor'が指定されます。
'descriptor'の動作は、追記されるファイルの名前が変更された場合でも、継続してそのファイルの内容を確認します。
'name'の動作は、追記されるファイルの名前が変更された場合、そのファイルの内容を確認するのではなく、指定したファイル名の名前を確認します。
また、終了する場合はCtrl+cで終了します。
コマンド例
1 |
tail -f growfile1 |
growfile_descriptor.sh(バックグラウンドで動作,Ctrl+cで終了)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#!/bin/bash declare -i num=1 file=growfile$num trap 'echo "Script End";exit 0' SIGINT echo 'Script Running...' while : ; do for (( i=1; i<5; i++ )); do echo "grow $i" >> $file sleep 2 done num=$num+1 nextfile=${file:0:8}$num mv -v $file $nextfile file=$nextfile echo "change $file" >> $file done |
実行結果(gifファイル)
--followオプションで何度もファイルオープンを試みる
(--retryオプション)
--retryオプションは指定したファイルを何度もファイルオープンと試みます。つまり、このオプションを使用した場合、指定したファイルが存在しない場合でも'tail -f'を使用することができます。
'--follow=descriptor'の場合は、最初のファイルオープンに成功するまで、何度もファイルを開こうとします。
'--follow=name'の場合は、無制限に何度もファイルを再オープンします。
--follow=name --retryと等価なオプション
(-Fオプション)
-Fオプションは--follow=nameと--retryオプションを同時に使ったものと同じオプションになります。指定したファイル名のファイルが追記されるとその内容が表示されていきます。
コマンド例
1 |
tail -F growfile |
growfile_name.sh(バックグラウンドで動作,Ctrl+cで終了)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#!/bin/bash declare -i num=0 file=growfile trap 'echo "Script End";exit 0' SIGINT echo 'Script Running...' while : ; do for (( i=1; i<5; i++ )); do echo "grow $i" >> $file sleep 2 done num=$num+1 backupfile=${file:0:8}$num mv -v $file $backupfile echo "backup $backupfile" done |
実行結果(画像)
-fオプションで指定したプロセスが終了するときにtailも終了
(--pidオプション)
--pidオプションは指定したプロセスが終了したときに、-fオプションをつけて動作しているtailコマンドを終了するオプションになります。
コマンド例
1 |
bash growfile_pid.sh > growfile & tail --pid=$! -f growfile |
growfile_pid.sh
1 2 3 4 5 6 7 8 |
#!/bin/bash for (( j=1; j<=3; j++ )); do for (( i=1; i<5; i++ )); do echo "grow $i" sleep 2 done done |
実行結果(画像)