I have ls and grep aliased to 'ls --color=auto' and 'grep --color=auto' for colorized output, but when I pipe to more the color is lost.
Neither more nor less seems to have a param for colorizing their output. Is there any way to do this?
The problem isn't that more
and less
aren't colourizing their output, it's that ls
is not outputting the colour because it's connected to another process rather than the terminal.
You can't easily get ls
to be any smarter about when it outputs colour, but you can add --color
to force it to output colour when you're piping it to more
When you have colour output, use ... |less -R
to make less
pass the colours through to the terminal instead of showing the escape codes as text
--color=always
(for grep), CLICOLOR_FORCE=true env variable for ls etc. to get the commands to spit out color codes even when the receiver is not a terminal - Sebastian Ganslandt 2014-03-20 11:50
ls --color | less -r
Tested on Linux, GNU userland.
less -R
rather thanless -r
- jørgensen 2012-04-05 05:06