最近、tail -f
を使用して次のようなテキストファイルを監視することを検討していました:tail -f /var/sometext
。
しかし、私がいくつかのテストを行ったとき、それはうまくいかないようです。私がしたことは、新しいファイルを作成して実行したことです:tail -f /home/name/text
次に、vimでログを開き、編集を行って保存しましたが、tailが変更を「認識」していないようです。
奇妙なことに、echo "hello" >> /home/name/text
の実行は正常に機能しているようです(テールは変更を確認します)。私はどこかでこれがファイル記述子とファイルを保存するときに作成される新しいiノードと関係があることを読みました。
誰かが私のためにこれを説明できますか?これが実際にどのように機能するかはよくわかりませんでしたが、ファイル記述子が何であるかはわかりました。
-f
の後にiノードが続きます。プログラムがファイルを完全に再作成する場合など、名前でフォローする場合は、代わりに-F
を使用します。
tail -fはファイルの終わりを監視し、ファイルの終わりが移動すると、新しいコンテンツを出力し、ファイルの終わりが再び移動するのを待ちます。つまり、ドキュメントの途中での変更は、tail -fでは検出されず、追加するだけです。