Next: , Previous: head invocation, Up: Output of parts of files


5.2 tail: ファイルの最後の部分を出力

tailは,それぞれのfileの最後の部分(デフォルトで十行)出 力します.ファイルが与えられていない場合や,‘-’というfileが 与えられているときは標準入力から読み込みます.概要です.

     tail [option]... [file]...

一つ以上のfileが指定されている場合,tailは以下から成り 立つ一行のヘッダを出力します.

     ==> file name <==

それぞれのfileの前に出力されます.

gnu tailは,任意の量のデータを出力することが可能です (tailの他のバージョンにはできないものもあります).ファイルを 逆順にすることはファイルの終りを出力する作業とは全く異なるので, -rオプション(逆順に出力)もありません.BSD tail (-rがあるものの一つ)は,最大でそのバッファの大きさまで,通常 32KiBのファイルを逆順にすることが可能なだけです.ファイルを逆順にする より信頼性のある用途が広い方法は,gnu tacコマンドです.

あらゆるオプション引数が,‘+’で始まる数字nの場合, tailはファイルの終りの代わりに,それぞれのファイルの最初から n番目の項目で出力を開始します.

プログラムは以下のオプションを受け入れます.Common optionsも参照 してください.

-c bytes
--bytes=bytes
最後の行の代わりに,最後のbytesバイトを出力します.後置される ‘b’はbytesの512倍,‘k’は1024倍,そして‘m’は 1048576倍になります.
-f
--follow[=how]
ファイルが増大している可能性があるため,ファイルの終りから,それ以降の 文字を読み込むことを永久に繰り返します.このオプションは,パイプから読 み込まれているとき無視されます.一つ以上のファイルが与えられている場合, 出力されてるファイルを示すため,異なるファイルから出力を得るときはいつ でも,tailがヘッダを出力します.

このオプションでは,ファイルを追跡する方法を指定する方法が二つあります が,その違いは,追跡しているファイルが削除されたり名前を変更されたりし たとき通知可能だということだけです.リンクが無くなった後でも,増え続け るファイルの終りの追跡を続けたい場合は,--follow=descriptorを 使用してください.これはデフォルトの動作ですが,回転(rotate)される(削 除や名前の変更がなされ,再び開かれる)ログファイルを追跡しているときは 不便です.その場合,他のプログラムにより削除され再作成されたかどうかを 周期的に見て,再び開かれる指名されたファイルを追跡するため, --follow=nameを使用してください.

使用している方法にかかわらず,追跡しているファイルが縮まっていると決定 された場合,tailはファイルが切り詰められたことを告げるメッセー ジを出力し,新たに決定された終端からファイルの終りを再追跡しはじめます.

ファイルが削除されたとき,tailの動作は名前で続けるか記述子で 続けるかに依存します.名前で続けるとき,tailはファイルが削除 されたことを検出し,その影響のメッセージを与えることが可能で, --retryが指定されている場合,ファイルが再び現れたかどうかを見 るため周期的な調査を続けるでしょう.記述子で続けるとき,tail はファイルのリンクが切れたり名前が変更されたことを検出せず,メッセージ を出力しません.ファイルは既に元の名前でアクセスできませんが,まだ増加 しているかもしれません.

オプション値の‘descriptor’と‘name’はオプションの長い形式での み指定でき,-fでは指定できません.

-F
このオプションは--follow=name --retryと同じです.すなわち, tailは削除されたときファイルを再び開こうとします.これが失敗 しても,tailは再びアクセス可能になるまで挑戦し続けます.
--retry
このオプションは,名前で続けるときだけ意味があります.このオプションが 無い場合,存在していないまたはアクセスできないファイルにtail が遭遇したとき,それはその事実を報告し再び調査しません.
--sleep-interval=number
繰り返しの間の待ち時間の秒数を変更します(デフォルトは1.0秒).待ってい る間,指定された全てのファイルの大きさが変ったかどうか調査します. tailの歴史的な実装では,numberを整数にする必要がありま した.しかし,GNU tailは(小数部の前にピリオドを使用している) 任意の浮動小数点の数値を受け入れます.
--pid=pid
名前または記述子で続ける場合,全てのfile引数に唯一書き込んでいる プロセスID pidを指定してもかまいません.そして,プロセスが終了し た少し後でtailも終了します.これは書き込んでいるものと tailプロセスが同じマシンで動作している場合のみ正確に動作しま す.例えば,ファイルにビルドの出力を保存したりファイルが大きくなるのを 見たりするためmaketailを以下のように呼び出し,ビ ルドが完了したときtailの処理は終了します.このオプションを用 いない場合,tail -fプロセスを自分で停止する必要があります.
          $ make >& makerr & tail --pid=$! -f makerr

使用中でない,または,tailされているファイルに書き込んでいる プロセスに対応しないpidを指定した場合,tailはあらゆる fileの増加が終了するよりかなり前に終了したり,実際に書き込んでい るものが終了してしばらくしても終了しないかもしれません.--pid はシステムによってはサポートできないことに注意してください.その状況で は,tailは警告を出力します.

--max-unchanged-stats=n
名前でファイルをtailしているとき,n(デフォルトで n=5)回連続して大きさ が同じ場合,ファイル名が以前と同じデバイス/inode番号の組に関連している かどうかを決定するため,ファイルに対してopen/fstatを実行 します.回転(rotate)されているログファイルを追跡しているとき,前回に回 転(rotate)した行をtailが出力するときと,新しいログファイルで 蓄積された行を出力するときの間は,おそらく数秒になります.このオプショ ンは,名前で追跡しているときのみ意味があります.
-n n
--lines=n
最後のn行出力します.
-q
--quiet
--silent
ファイル名のヘッダを出力しません.
-v
--verbose
常にファイル名のヘッダを出力します.

古いシステムでは,tailは時代遅れのオプション -countoptionsをサポートし,それは最初に指定されて いる場合だけ認識されます.countは十進数の数値で,オプションで -cでのサイズ指定文字(‘b’,‘k’,‘m’)や,行数を 意味する‘l’,またはそれ以外のオプション文字(‘cfqv’)が続きま す.古いシステムには,-+countと同じ意味がある時代遅れの オプション+countをサポートしているものもあります. POSIX 1003.1-2001 (see Standards conformance)ではこれら を許可していません.代わりに-c count-n countを使用してください.

終了ステータスのゼロは成功を示し,ゼロ以外の値は失敗を示します.