When I have dircolors defined life is full of... color.
When I pipe ls
through less
to scroll around I lose the colors.
Any suggestions?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.
Sign up to join this communityMost likely your ls
is aliased to ls --color=auto
, which tells ls
to only use colors when its output is a tty. If you do ls --color
(which is morally equivalent to ls --color=always
), that will force it to turn on colors.
You could also change your alias to do that, but I wouldn't really call that a good idea. Better to make a different alias with --color
.
less
needs -R
too, which causes it to output the raw control characters.
ls --color
or ls --color=always
, for that matter?
ls --color=always | less
and got: ESC[01;32mexecute_once.shESC[0m
(I know this is old and you probably don't care, but for future visitors, this may be useful)
Jun 30, 2015 at 16:51
Try less with the -R option like this:
command | less -R
This works for me in a one-liner like this:
ls -la | grep --color=always bash | less -r
And like this too:
ls --color | less -R
But you have to tweak the primary output (the output of ls in this case) a bit with the --color parameter.