tail -f dosya değişikliklerini izlemiyor


15

Geçenlerde kullanarak içine bakıyordu tail -föylesine gibi bazı metin dosyaları izlemek için: tail -f /var/sometext.

Ancak, bazı testler yaptığımda işe yaramadı. Yaptığım şey yeni bir dosya oluşturup koştum: tail -f /home/name/textSonra, günlüğü vim'de açtım ve bazı düzenleme yaptım, kaydettim ve kuyruk değişikliği "görmüyor" gibi görünüyor.

Garip olan, koşmak echo "hello" >> /home/name/textiyi çalışıyor gibi görünüyor (kuyruk değişikliği görür). Bir yerde bu dosya tanımlayıcıları ve bir dosya kaydedilirken oluşturulan yeni inodes ile ilgisi olan bir şey okudum.

Birisi bunu benim için açıklayabilir mi? Bunun gerçekten nasıl çalıştığını tam olarak anlamadım, ancak dosya tanımlayıcılarının ne olduğu hakkında bir fikrim var.

Yanıtlar:


30

-fardından inode. Bir programın dosyayı tamamen yeniden oluşturması gibi bir adla takip etmek istiyorsanız -Fbunun yerine kullanın.


Düzgün, bunu hiç bilmiyordum. Her zaman kullanırsanız, yardımcı programların yönetimini bile (özellikle?) Okumak öder!
Lyle

1

tail -f dosyanın sonunu izler ve dosya sonu hareket ettiğinde yeni içeriği yazdırır ve dosyanın sonunun yeniden taşınmasını bekler. Başka bir deyişle, belgenin ortasındaki değişiklikler yalnızca -f kuyruğu tarafından bulunmaz.


-1

Aslında, gerçek hikaye:

tail -f diski değil, belleği izler. Ancak korumalı belleğe erişemiyor, örneğin bir dosyada yapılan düzenlemeler bir metin düzenleyici açtı.


tail -fKomutu (dosyayı açmadan sonra dosya tanımlayıcı) Bir dosya üzerinde çalışır. Aslında dosyanın yeni modifikasyonları hala hafızada olmasına rağmen (tamponlar, önbellek) önemli değil. taildosya tanımlayıcıyla yine de dosyaya erişir. Dosyanın nasıl değiştirildiği önemli değildir. --- Ignacio Vazquez-Abrams'ın cevabı doğrudur - editör geçerli dosyayı değiştirmez (içinde açılır tail), değişiklikleri eskisiyle aynı ada sahip yeni bir dosyaya kaydeder.
pabouk
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.