我将ls和grep别名为'ls --color=auto'和'grep --color=auto'用于彩色输出,但是当我通过管道传输更多颜色时,颜色会丢失。
似乎没有更多或更少的参数来为他们的输出着色。有没有办法做到这一点?
问题不在于more
并且less
没有对它们的输出进行着色,ls
而是没有输出颜色,因为它连接到另一个进程而不是终端。
当它输出颜色时,你不能轻易地变得ls
更聪明,但你可以添加--color
以强制它在管道输出颜色时输出颜色more
当您有颜色输出时,用于... |less -R
将less
颜色传递到终端,而不是将转义码显示为文本
ls --color | less -r
在 Linux、GNU 用户空间上测试。
在 macOS 10.15 Catalina (darwin 19.0.0) 上,您可以将ls
管道的输出着色为head
, grep
,less
并对more
zsh 配置进行以下调整:
~/.zshrc
alias less="less -R"
alias more="more -R"
~/.zshenv
export GREP_COLOR=always
export CLICOLOR_FORCE=true
运行open x-man-page://command
以打开该命令的手册页command
。