Displaying a "scrolling" log file

Via command line, I have a log file I'd like to keep track of.

What I want is to have, basically, a tail that refreshes when the log is updated making the text scroll upwards as new lines are appended to the log file.

Is there anything out there that does that without having to write some code?


tail has the -f option:

From the man page:

-f, --follow[={name|descriptor}] output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent

Thus if you type:

tail -f [path_and_name_of_logfile] - you will see the output in the terminal as the log file itself is appended to.

N.B. [path_and_name_of_logfile] is the parameter, so to give an example:

tail -f /var/log/messages

If you combine with the -n [number_of_lines] option you can start the output from the last [number_of_lines] in the file - for example

tail -n 10 -f /var/log/Xorg.0.log

enter image description here


Some programs will periodically change their log file, moving the old one to a new name (e.g. log.0) and starting over.

N.B. logrotate does this to log files for other programs that don't do it themselves.

tail -f will continue to follow the old file after it's renamed.

tail -F will follow the file by name, so will switch to follow the new file.


While tail is certainly the usual way to do this, it should be noted that less has the same feature and is sometimes more usefull.

If you opened a file with less then you can press Shift + F to have it follow the file (i.e. it will display new lines, just as tail -f does). You can exit this mode with Ctrl + C

You can also start less with the +F option, in which case it will start in that mode. Generally speaking + can be used to give "keyboard-commands" to less which it will execute upon startup.

Using less for this has the advantage that you can easily search the file or view other areas if the need arises. I've frequently done that with log files, for example.