という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
元のファイルに対する新しい変更は表示されません。