ローカルで開発中のアプリケーションは、現在のタイムスタンプでフォーマットされたファイルに出力を書き込みますapp-%Y%m%d.log
。
ターミナルウィンドウで現在のログを簡単に追跡できるように、今日のログを指すというcurrent.log
シンボリックリンクを使用しました。
毎日の作業を開始したら、tailプロセスを終了し、今日のファイルへのシンボリックリンクを指定してからtail -f current.log
。
tail
再起動せずにファイルハンドルの宛先を変更してシンボリックリンクの宛先を変更できますかtail
?
この「新しいタスクの開始」タスクを自動化するには、今日のファイルへのシンボリックリンクを指すようにcron'edスクリプトを設定するのが簡単です。しかし、既存のtail
プロセスは、ターゲットが変更されたことを知らないようです。
ベストアンサー1
定期的にファイルを閉じて再度開くことができないと不可能だと思います。 tail(または他のプログラム)がファイルを開くと、ファイルのinodeへのハンドルを取得します。この時点で、ファイル名とリンクは参照されなくなりました。これがファイルシステムからファイルを削除することができ、それを開くすべてのプログラムが機能し続ける理由です。 ;astプログラムがファイルを閉じたときにのみ、実際にディスクから削除されます。
更新:少なくともOS Xバージョンでは、ファイルが移動された場合にファイルを再度開くことができる-Fオプションが最後にあります。