Dosyanın tamamını nasıl görebilir ve ayrıca bu dosyaya daha fazla veri eklenmesini bekleyebilirim?


21

Tüm dosyayı okumak ve tıpkı tail -f görüntülenen dosyanın tamamı ile olduğu gibi girişi beklemek istiyorum .

Bu dosyanın uzunluğu her zaman değişecektir, çünkü bu bir .logdosyadır.

Dosyanın uzunluğunu bilmiyorsam nasıl yapabilirim?


2
kuyruğunun istediğine yakın olduğunu zaten biliyorsun. Bunun için man sayfasını okudun mu?
njzk2

1
less"F" tuşuna sahiptir. Eğer etkileşime ihtiyacınız varsa kullanışlıdır.
Thorbjørn Ravn Andersen

Yanıtlar:


33

tail-nile birlikte kullanılabilecek uçtan gösterilecek satır sayısını belirtmenizi sağlar -f. Eğer argüman bununla -nbaşlıyorsa +, başlangıçtan itibaren satırların sayısı ( 0ve 1tüm dosyanın 2gösterilmesi, @Ben ile gösterilen şekilde ilk satırı atladığını gösterir). Yani sadece yapın:

tail -f -n +0 filename

Sizin günlük dosyaları döndürülmüş alırsanız, ekleyebilir --retry(veya birleştirmek -f and --retryiçine -F@Hagen önerdiği gibi)

Ayrıca, grafiksel bir terminalde, fareyi ve PageUp/ PageDowndüğmelerini geçmişe geri kaydırmak için kullanabileceğinize dikkat edin (tamponunuzun yeterince büyük olduğu varsayılarak), bu bilginin çıkmak için Ctrl+ ' Cyı kullansanız bile orada kaldığını unutmayın tail. Eğer bunu lessçok daha az kullanışlıdır ve AFAIK kullanıyorsanız, klavyeyi kaydırma yapmak için kullanmak zorundasınız ve lessbaşlatmayı unutursanız termin başlamasını engellemenin bir yolunu bilmiyorum -X.


1
+1 Cevabınızı benim gönderdiğim anda belirttim ve benimki çalışsa da seninki daha iyi.
Julie Pelletier,

1
Hala başka bir cevabın orada olduğunu ve tazelemek için tıklamam gerektiğini yazarken mesajı aldım. Cevabınız işi hallederdi, ama baştan saymanın (zorla +) daha etkili bir şekilde uygulanmasına şaşırmam .
Anthon

1
+1bana öğrettiğin için +0. Günlük dosyalarını döndürmek -Fyerine isteyebilirsiniz-f
Hagen von Eitzen

Sanırım burada bir tane var. tail -n +1benim için dosyanın başlangıcını gösterir ve tail -n +2bir satır atlar. Numara, görüntülenen ilk satırın satır numarasıdır.
Ben Millwood

1
@Anthon teşekkürler! Bu tam ihtiyacım olan şey!
malworm

37

Bunu başarmanın daha iyi bir yolu var:

less +F <file>

Size tüm dosyayı gösterir, gücüne sahiptir lessve yeni girdiler için bekler. Giriş için beklemeyi bırakmak ve belirli bir bölümü okumak istiyorsanız, ile durdurabilir ^Cve devam edebilirsiniz F.

FKomut içinde her zaman kullanılabilir lessbir dosya açma in yerken değişiklikleri izleyecek karar verirseniz, lessisabet, Fonu dönecek. Hiergiltdiestfu ve bunu işaret ettiği joker için teşekkürler .


2
Bu gerçekten ondan çok daha iyi tail. Bahşiş için teşekkürler; Bunun lessiçin kullanmayı asla düşünmezdim . Diğerleri için not: Ayrıca sadece yazıp less <file>yazabilirsiniz F.
Joker,

3

/ U / Anthon’un cevabına ek olarak, şöyle bir şey yapabilirsiniz:

{ cat filename; tail -0f filename; }

Yani -0kuyruğuna seçenek eşdeğerdir -n 0dispaly 0 hatları: anlam,. Ancak -firade yeni çizgiler gösterecek.

Diş tellerine ihtiyacın yok { }. Onları kullandım çünkü bazen dosya tanıtıcılarını bir şekilde yönlendirmek istiyorsun. Örneğin:

{ cat ; tail -0f -; } < /var/log/messages

Ben Milwood tarafından not edildi: Dosyanın catişlemin sonu ile işlemin başlangıcı arasında büyüdüğü bir yarış koşuluna sahip olabilirsiniz tail. Fakat yine de bu, akademik bir çözüme giden "akademik" bir sorundur.


3
Dosya catbittiğinde ve tailbaşladığında arasında büyürse , bu satırları görmezsiniz. Büyük bir olasılık olması muhtemel değil, saf tailçözümü tercih etmek için bir neden .
Ben Millwood

Bence { cat; tail -n +0 -f; } < fileyarışı düzeltebilirim çünkü kuyruk, catçıkış ile tailbaşlangıç arasında görünen her türlü yeni veriyi basacaktır . Tabii ki, catgereksiz yapar . Yönlendirme yalnızca bir kez gerçekleşir ve tailstdin, catzaten EOF için okunan dosya tanıtıcısıdır , bu nedenle mevcut konumu catdurduğu yerdedir . Her zaman yarışı oluşturmak için echo foo >> fileiçine koyarak onu test edebilirsiniz {}.
Peter Cordes

2

watch komut sizin için yapmalı.

Ayrıca deneyebilirsiniz

less +FG 

lessBüyük bir dosya dediğiniz gibi dosyanızı kaydırmak için komutla daha fazla seçeneğiniz olacak .


Az da büyüyen bir dosyayı takip etmez.
Shadur

7
@Shadur, öyle, +Fseçeneğin ne için olduğunu
glenn jackman
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.