tail: Bir dosyanın tamamını okumak ve ardından


35

tail -fDosyanın tamamını okuyan ve ardından yazıldığı gibi izlemeye devam eden bir tür davranış istiyorum .


ÇÖZÜM

Kabul ettiğim cevaba göre, bu çalışır: tail -f -n +1 {filename}

Çalışır Neden:-f seçenek "follow" devam ediyor onlar dosyaya yazılır gibi dosya ve çıkış yeni çizgiler. -n +1Talimatını taililk satırından dosya okumaya başlamak için. Kullanmak -n -10dosyanın son on satırıyla başlar.


2
Bu bir yorum değil soru. Kuyruk zaten bunu yapmaz: tail -f -n 10000000000000000000Muhtemelen tüm çizgileri göstermeyecek mi? (belki 10000000000000000000 biraz fazladır: =))
Rinzwind

Sadece more fileNamebunu yapacağına inanıyorum
ryekayo

1
no..more, daha başladıktan sonra dosyaya eklenen fazladan satır eklemeyecek.
Rinzwind

Muhtemelen tail -f -n 100..., dosya sayısını temel alarak satır sayımı için bir üst sınır çalışmak için yeterince akıllı olmadığı sürece, satır sayısını belirlemek için dosyayı önceden okumayı içerecektir.
mwfearnley

Yanıtlar:


51

kullanım

tail -f -n +1

Kullanarak man tailsize daha fazla ayrıntı verecektir, ilgili alıntı izler.

<snip>Numbers having a leading plus (`+') sign are relative to the
beginning of the input, for example, ``-n +2'' starts the display at the
second line of the input.</snip>

-f      The -f option causes tail to not stop when end of file is
        reached, but rather to wait for additional data to be appended to
        the input.  The -f option is ignored if the standard input is a
        pipe, but not if it is a FIFO.

-n number
        The location is number lines.

3
Lütfen cevabınıza "daha fazla ayrıntı" ekleyebilir misiniz? Lütfen çözümünüzün neden ve nasıl çalıştığını açıklayın . (Cevabınızı düşük kaliteli mesajlar kuyruğunda
buldum

1
@kraxor "Daha fazla ayrıntıyı" man tailyanıtın yazdığı gibi yürüterek (ve okuyarak) bulabilir veya "kuyruk sayfası" için çevrimiçi bir arama yapabilir ve bunlardan birini okuyabilirsiniz. taildosyadaki bir pozisyondan başlayarak çalışır, sonuna kadar okur (ve görüntüler), ardından dosya boyutu artar. Dosya boyutu arttığında, tailönceki EOF konumundan dosya sonuna kadar okur ve görüntüler.
waltinator

2
@waltinator Gerçekten kendim için sormadım. Gönderisinin düşük kalitede olması nedeniyle daha fazla ayrıntı eklemesini istedim, ancak doğru bir cevap verdiği için silmek için oy kullanmak istemedim.
kraxor

1
Bu tam olarak aradığım şeydi. Daha önce kullandım tail -50 {filename}, ancak ikisini birleştirerek başarılı olamadım.
Sonny


3

Bunu dene:

watch tail {filename}

Gözetlemek {filename}istediğiniz dosya nerede ? Bu, sürekli olarak değişiklik komutunu izler ve değişiklikleri stdout'a gönderir. Oldukça kullanışlı.


Bu çok hoş bir araç gibi görünüyor. Aradığım sonuçları tam olarak vermese de, kesinlikle aklımda tutacağım. Kabul edilen cevap ile birleştirmek oldukça güzel:watch tail -n +1 {filename}
Sonny

Evet, mükemmelleşmiş gibisin!
Rick Chatham

watchgerçekten yararlı bir araçtır, ancak bir komutun çıktısının değişimini izlemek için fakat eklenmiş bir dosyanın sonunu izlemek için kullanımı çok daha iyidir tail -f. --- watch tail {filename}her iki saniyede bir yeniden açılacak ve dosyanın sonunu tekrar okuyacaktır. Diğer taraftan tail -f, dosyanın büyümesini izler ve tespit edildiğinde hemen eklenmiş bölümü okur. tailf -fçok daha verimli ve reaksiyon çok daha hızlı. Ayrıca dosya içeriğini, başladığınız noktadan itibaren sürekli olarak gösterir. --- watchiki saniyede bir çıktısını değiştirir.
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.