I just updated this system from util-linux 2.37 to 2.38 (util-linux is a set of small, commonly-used command line programs) to find a small but distracting change in the behaviour of
more(1), the venerable text file pager utility.
For as long I can remember, the behaviour of
more when run on a text file shorter than the current height of the terminal has been to print the contents of the file and return without any interaction.
In util-linux 2.38 this changes, so that
more when run on a small text file will clear the terminal, show the file at the top of the window, print
END at the bottom, and wait for input before returning. This is kind of distracting: clearing the terminal is not something I want, and also it makes the file look as if it has lots of blank lines at the end.
I spent a wee while figuring out where and why this change was introduced: turns out it’s for POSIX standards compliance. The commit that introduced the change is titled “POSIX compliance patch preventing exit on EOF without -e”, and the POSIX version of the man page for
more(1) indeed supports this behaviour. I don’t remember ever seeing it before. I wonder which system it originated with.
Anyway the good news is that the new option
--exit-on-eof restores the expected behaviour, and adding
export MORE="--exit-on-eof" to
.bashrc makes it the default again.
One thought on “A note on the paging behaviour of more(1) in util-linux 2.38”
Saved me scouring the changelogs to figure wtf happened after decades of consistent behavior from more.