UNIX:如果通过管道传输到 less 会出现奇怪的输出

avd*_*avd 5 unix command

如果我使用管道执行 ls 命令到 less,我会得到奇怪的输出

ESC[00mESC[00mfile1.ccESC[00m
ESC[00file2.ccESC[00m
ESC[00file3.ccESC[00m
Run Code Online (Sandbox Code Playgroud)

(表示中间的 ESC 字符串)。

如果没有 ls,输出为:

file1.cc    file2.cc    file3.cc
Run Code Online (Sandbox Code Playgroud)

如何纠正这个问题?

msw*_*msw 4

我猜您可以选择--color=always通过ls别名、函数或LS_COLORS环境变量进行设置,并将ls颜色指令发送到非终端(即您的管道less)。