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.

VL-80
  • 4,693
Max Williams
  • 3,129

4 Answers4

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.

Nikolai
  • 520
  • 3
  • 13
5

From less -help:

F Forward forever; like "tail -f".

so presumably less +F /var/log/messages

Oliver Salzburg
  • 89,072
  • 65
  • 269
  • 311
linuxdev2013
  • 1,395
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
revacuate
  • 131
0

You could just do

tailf logname.log | grep "query-here"