19

I use tail -f in my Linux shell, to view log files, as I like how it auto-updates with the incoming text: I like to see the new stuff come scrolling in.

However, I also like the search functionality of less, which isn't available in tail (or is it?). Is there a "best of both worlds" solution?

If there was a mode I could switch on in less which would make it auto-update with incoming text, then that might be ideal.

1
  • Does it have to be a simple command or would you accept using a Node.JS command line application? Commented Apr 16, 2015 at 11:16

4 Answers 4

24

You can run less +F filename in order to view file in tail -f fashion.

You can press Shift+F while viewing file in less to switch to forwarding mode, and Ctrl+C to leave this mode.

1
  • Or Shift-End for continuous update.
    – auxsvr
    Commented Apr 16, 2015 at 22:35
5

From less -help:

F Forward forever; like "tail -f".

so presumably less +F /var/log/messages

2
  • You can also press Shift+F while viewing file in less to switch to forwarding mode, and Ctrl+C to leave this mode.
    – Nikolai
    Commented Apr 16, 2015 at 12:20
  • @linuxdev2013 - starting it with "less -F <file>" doesn't work for me. @Nikolai - shift&f is perfect, thanks! If you want to make that an answer i'll mark it as correct. (btw, in case anyone else is reading, to get out of forwarding mode, it's ctrl&c, or whatever your regular cancel/interrupt keycode is. Commented Apr 16, 2015 at 12:55
3

Nicolai's answer is probably closest to what you asked for, but have you thought about using tmux?

In my tmux sessions, I like to tail -f logs, then simply enter tmux's copy mode to search up and down exactly like searching in less, then exit copy mode to find my tail -f still going.

Create a tmux session:

tmux

Tail the log file and the last 1000 lines to start:

tail -f -n1000 /var/log/syslog

Enter copy mode using the leader key and a left bracket:

[ctrl+leader] + [

the default tmux leader key is the letter b, so for example:

[ctrl+b] [

Now you can scroll and search up and down just like in less.

Exit copy mode to return to your tail -f with:

[crtl+c]

Bonus material: Open a second terminal prompt:

[ctrl+leader] + c

Switch between the two terminal prompts:

[ctrl+leader] + l
0

You could just do

tailf logname.log | grep "query-here"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .