Vim ile metin dosyasını düzenlemek tail -f'yi güncellemiyor


17

tail -f a.txtAdlı bir dosyada güncellemeleri izlemek için kullanıyorum a.txt.

Dosyayı ls -a >> a.txtikinci bir sanal konsoldaki gibi bir şey kullanarak güncellersem, değişiklikler ilkinde gerçek zamanlı olarak görüntülenir.

Dosyayı ikinci bir sanal konsolda Vim kullanarak güncellersem, değişiklikler birincisinde görünmez.

Mutlaka o pencerede bir güncelleme tetiklemesini beklemiyorum - ama neden bu tail -fkomutu çalıştıran terminali tam olarak güncellemiyor ?


5
tail -fekleri kontrol eder. tail -Fdosya adlarını kontrol eder.
thrig

Yanıtlar:


31

İle bir dosyayı düzenlerseniz vim, genellikle dosyayı belleğe okur ve yeni bir dosya yazar. Bu nedenle tail, dosyanın tail(ve başka bir program) kullanmayı bırakana kadar dosyanın sistemde kalan güncel olmayan bir kopyası üzerinde çalışıyor.

Aşağıdakileri tailkullanarak dosya adını (dosya yerine) izlemeyi yapabilirsiniz :

tail -F yourfile  

Not Üst kasayı F .


1
tail -Fİşler! Konsol şimdi "a.txt değiştirildi: yeni dosyanın sona ermesinin ardından" gibi bir ileti görüntülüyor ve buna göre güncelleniyor. Teşekkürler!
alex

8

Anladığım kadarıyla, genellikle ile düzenleme yaparken vim, diske değişikliklerinizi yazdığınızda yerine taşınan dosyanın bir kopyasını düzenliyorsunuz. Bu unlink, orijinali yerleştirip moveyenisini yerine yerleştirdiğinden, tailorijinal dosyada yeni değişiklikler görmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.