通过较少的bash中的颜色?


106

当我定义了dircolors时,生活充满了……色彩。

当我管ls通过less左右滚动我失去了颜色。

有什么建议么?

Answers:


105

ls的别名很可能是的别名ls --color=auto,它指示ls仅在输出为tty时使用颜色。如果您这样做ls --color(在道德上等同于ls --color=always),则将强制其打开颜色。

您也可以更改别名来做到这一点,但是我真的不会把它称为一个好主意。最好使用创建其他别名--color

less也需要-R


5
为此,为什么不将ls别名为ls --coloror ls --color=always呢?
j08lue 2015年

10
@ j08lue如果通过不处理颜色的命令进行传递,则会得到一些可能会使该命令弄乱的垃圾字符。例如,我做到ls --color=always | less了:(ESC[01;32mexecute_once.shESC[0m我知道这很旧了,您可能不在乎,但对于将来的访客来说,这可能会有用)
Ryan Amos

55

尝试使用-R选项,例如:

command | less -R

这对我来说像这样的单线工作:

ls -la | grep --color=always bash | less -r

也是这样的:

ls --color | less -R

但是您必须使用--color参数来微调主要输出(在本例中为ls的输出)。


谢谢,这也适用于ack-grep。ack-grep my_string --color | -R
igniteflow 2014年

1
--color无法识别:ls:非法选项--在osx上运行bash。
Scott Biggs 2014年

1
@Scott Biggs:在OSX中没有--color; 试试ls -G

@ Lu-Chi,即使有-G,也缺少颜色
Iulian Onofrei

1
-R选项是的缩写--RAW-CONTROL-CHARS
罗里·奥肯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.