Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

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?

Thanks, -Mathew

share|improve this question

2 Answers 2

up vote 38 down vote accepted

Most 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.

share|improve this answer

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.

share|improve this answer
Thanks, this also works for ack-grep. ack-grep my_string --color | less -R –  igniteflow Jan 30 at 14:25
--color is not recognized: ls: illegal option -- - Running bash on osx. –  Scott Biggs Oct 17 at 17:04

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.