Questo non è davvero tail
comportamento -- è il terminale. Tail sta solo inviando un flusso di output a stdout, che va al tuo terminale, e stai inserendo righe vuote nel mezzo di quell'output premendo invio. La coda stessa in realtà non accetta affatto input da te. Puoi digitare qualunque altra cosa tu voglia e anche quella apparirà.
less
, tuttavia, è un'app per console e richiede l'input e lo elabora. Sta gestendo la console usando le sequenze di controllo del terminale, che è il modo in cui puoi scorrere. Consentirti di inserire caratteri arbitrari nello stream rovinerebbe la visualizzazione e comunque utilizza meno il tuo input per controllare il programma.
Sfortunatamente, non sembra avere un modo per contrassegnare visivamente la posizione corrente. Questa non è una richiesta di funzionalità terribile, tuttavia, e meno lo fa ottieni comunque nuove funzionalità di tanto in tanto.
Ho trovato la tua domanda mentre cercavo la stessa risposta per me stesso.
Deluso dalla risposta accettata, ho trovato una soluzione alternativa. Non è l'ideale, ma mi permette di contrassegnare la mia posizione nel registro che sto seguendo con less
, che è il punto.
Ho creato un piccolo script eseguibile (l'ho chiamato marklog
) con i seguenti contenuti e inseriscilo nel mio percorso:
#!/bin/sh
echo >> $1
echo >> $1
echo >> $1
echo `date` ---------------------------------------------------------------------- >> $1
echo >> $1
echo >> $1
Naturalmente, questo funziona solo se si dispone dell'accesso in scrittura al file di registro, il che potrebbe essere un rompicapo in molte situazioni. Ho anche creato questa versione che uso per scrivere su file di log che non possiedo (ma a cui ho accesso sudo):
#!/bin/sh
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo `date` ------------------------------------------------------------------------- >> $1"
sudo sh -c "echo >> $1"
sudo sh -c "echo >> $1"
Questi script forniscono proprio il tipo di interruzione visiva che stavo cercando. Ci sono almeno 3 modi in cui puoi usarli:
-
Nel punto in cui normalmente premi invio alcune volte quando usi
tail -f
, esegui invecemarklog
da un altro terminale (fornendo il percorso del file di registro come argomento). -
Usa Ctrl Z per sospendere
less
quindi puoi eseguire lo script nella stessa finestra di terminale, ma quando riesegui il primo pianoless
(usandofg
, ovviamente), non sarà più in modalità 'segui', quindi dovrai premere Maiusc F di nuovo... -
Infine, e questo potrebbe essere il modo più conveniente, perché non è necessario digitare il percorso del file di registro:eseguire
marklog
direttamente daless
digitando!marklog %
.Less
sostituirà il nome file corrente per%
. Tuttavia,less
non risponderà al ! mentre è in modalità 'segui', quindi dovrai premere Ctrl C prima di uscire dalla modalità follow, esegui!marklog %
, quindi Maiusc F di nuovo.
Con il metodo 3, ottieni anche il vantaggio aggiuntivo della cronologia dei comandi di Less:basta premere !
e poi usa la freccia su per selezionare il comando più recente (per me è sempre marklog
).
Spero che questo aiuti qualcuno tanto quanto ha già aiutato me.