tail -f ma succhia prima il contenuto del file (alias `cat -f`)


9

Devo visualizzare l'intero file prima di rintracciarlo per una nuova modifica, non solo le ultime 10 righe (sì, so che non è concettualmente coda ). In altre parole, qualcosa del genere cat -ffarebbe, se mai esistesse. L'uomo di coda non mi dà alcuna idea. L'unica opzione che vedo in questo momento è in qualche modo combinare cat tranne le ultime 10 righe e l' output tail -f .

Qualche suggerimento, per favore?


3
cat $f && tail -n0 -f $fmi viene in mente, e controllando la pagina man che sembra tail -c0 -f $fpotrebbe anche fare quello che vuoi (ed essere migliore perché non crea una condizione di competizione tra i due processi in cui i dati scritti potrebbero essere ignorati). Non ho accesso a un sistema Linux in questo momento ma uno di questi fa quello che vuoi?
un CVn

Questo è utile e ho appena aggiunto una tale funzionalità a un linguaggio di programmazione: un "flusso di coda" che può leggere un file normalmente dall'inizio alla fine, e poi passa alla modalità "coda -f" alla fine, e può anche notare che il file è stato sostituito con uno più corto o troncato, e segui quello. Questo è necessario per poter eseguire operazioni come l'elaborazione di registri esistenti (recuperare il ritardo con un backlog) e quindi iniziare l'elaborazione di nuove voci.
Kaz

Risposte:


14

Ecco un modo per farlo:

tail -f -n+0 /var/log/messages

Non sembra esserci alcuna differenza tra a +0e a +1, quindi questo sarebbe equivalente:

tail -f -n+1 /var/log/messages

2
Parte pertinente della pagina man (salva un po 'di battitura alle persone) ... -n, --lines = K produce le ultime K righe invece delle ultime 10; o uso -n + K per linee di uscita comincia con la Kth
demente riccio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.