Vimを使用してテキストファイルを編集すると、tail -fは更新されません。

Vimを使用してテキストファイルを編集すると、tail -fは更新されません。

というtail -f a.txt名前のファイルの更新を表示するために使用しますa.txt

2番目の仮想コンソールのようなものを使用してファイルを更新すると、ls -a >> a.txt変更はリアルタイムで最初の仮想コンソールに表示されます。

2番目の仮想コンソールでVimを使用してファイルを更新すると、変更は最初の仮想コンソールに表示されません。

そのウィンドウで更新をトリガーする必要はありませんが、コマンドが実行されている端末を更新しないのはなぜですかtail -f

答え1

編集ファイルを使用する場合は、通常vimファイルをメモリに読み込み、新しいファイルを書き込みます。そのためtail、ファイルの古いコピーtail(および他のプログラム)が無効になるまで、ファイルシステムに残っているファイルのコピーで作業しています。

tail以下を使用して、ファイルの代わりにファイル名に従うことができます。

tail -F yourfile  

参考にしてください首都 F

答え2

私が理解しているのは、通常、を使用して編集するときにvimファイルのコピーを編集することであり、変更をディスクに書き込むときに所定の位置に移動されることです。これはunlink、元のファイルをコピーしてmove新しいファイルを配置した場合に発生するため、tail元のファイルに対する新しい変更は表示されません。

関連情報