私はtail -f
(Mac OS X el Capitanの端末で)ファイルのリアルタイム変更(PERLスクリプトを使用してデータベースからデータをインポートした結果)を表示するために使用しています。ただし、Perlスクリプトがファイルを切り捨てて新しいデータを追加することもあります。このような状況が発生した場合は、次のメッセージが表示されます。
tail: test.txt: file truncated
これにより、ファイルの内容は表示されません。これは、ファイルを以前より少ない行に置き換えた場合にのみ発生するようです。新しい行がスクリプトを実行する前より長くなると、このエラーは発生せずにtail -f
動作し続けます。実際にtail -f
この(エラー?)メッセージを受信した後、ファイルのデータが表示されないことを確認しました。
私はこのような質問を見たことがあります。tailを使用するときに「ファイルを切り捨てる」メッセージを抑制します。
tail -f test.txt 2> /dev/null
ただし、これはメッセージを抑制するだけで、まだ中断され、短く切り捨てられたファイルの内容を表示し続けません。
リアルタイムでファイルの変更を見るためのより良いコマンドはありますか?それとも、tail -f
ファイルが切り捨てられたときに無視するフラグがありますか?
ベストアンサー1
他の人が指摘したように、tail
OS Xに付属のコマンドにはそのオプションはありません--retry
。ただし、そのオプションを使用して、GNUバージョンのテールを簡単にインストールできます。GNUコアツール。たとえば、MacPortsを使用している場合sudo port install coreutils
。
リアルタイムでファイルを表示するための代替案は、watch
残念ながらOS Xでは利用できないコマンドです。ただし、次のものを使用できます。このシンプルなソリューション。