tree
并且ls
可以通过对文件名进行不同的着色来区分文件类型。
tree
并且ls
经常输出一长串文件(包括目录),所以我通过管道将标准输出输出到less
.
但less
不保留颜色。我们怎样才能让它显示颜色,或者一些其他的方式?
刚刚看到链表,但管道到less -R
或less -r
不起作用。我的操作系统是 Ubuntu 12.04。less
是 444 版:2011 年 6 月 9 日。
phe*_*mer 18
我将假设您正在使用ls --color=auto
,它告诉ls
在“自动”模式下使用颜色。“自动”模式告诉less
查看 STDOUT 是否为终端,如果是,则使用颜色,否则不使用颜色。当您通过管道ls
输入 时less
,STDOUT 不是终端,它连接到 的 STDIN less
,这是一个普通管道。
解决方案,使用ls --color
或ls --color=always
。
然而,现在这导致了另一个潜在的问题。根据您的less
,它可能不显示颜色,而是显示转义码。解决方案是使用less -R
. 这告诉less
通过 ANSI 颜色转义的转义代码。您不想使用,-r
因为这会导致环绕的长线出现问题,因为 less 无法正确计算线长。
所以完整的解决方案:
ls --color | less -R
Run Code Online (Sandbox Code Playgroud)
同样对于tree
:
tree -C | less -R
Run Code Online (Sandbox Code Playgroud)