| Not the GP and I do like bat, but to answer your questions: > That shows non-printable characters like bat does? cat does actually support that via the flags with -v (you can also use -t and -e to view tab and line endings too) > That allows you to concatenate and page multiple files at once like bat does? cat is literally called “cat” because it’s intended purpose is concatenation. It’s not a pager though the GPs example did pipe to less anyway. > That supports the --line-range option like bat does? ‘tail’ and ‘head’ would be muscle memory to a lot of people and not that different in terms of number of keystrokes. But I do take your point that it’s nice to have that built into your pager. > You can pipe the output of tail -f through your alias? I couldn’t see why not. tail -f isn’t doing anything weird with the fd. ——— I’m not arguing against using bat though. I have it aliased to cat on my own machines, so I clearly and would recommend bat. But I do think some people might be surprised how far you can get with coreutils if bat wasn’t available |
cat's behaviour and bat's behaviour is different, though.
This difference becomes more useful once we have a more meaningful example: It's hard to imagine many people have the muscle memory for the combination of cat, head, and whatever else you need to add headers with the filename and file size, call out empty files, highlight the second line, show line numbers, do syntax formatting, and wrap to the terminal width (head doesn't do this).