为什么我在重定向流中看不到转义序列或者颜色输出是如何实现的?

为什么我在重定向流中看不到转义序列或者颜色输出是如何实现的?

在终端中运行时ls,输出有不同的颜色:

ls 控制台输出

据我所知,这种着色是通过 espace 序列(vt)完成的。

但运行时ls | hexdump -cC只显示字符和 LF。重定向到文件会导致类似的结果。

LS | hexdump -cC 控制台输出

那个怎么样?

答案1

GNUls仅在写入终端时输出彩色文本的转义序列,而不是在重定向到文件或管道时输出转义序列。

为此,请使用ls --color=always.

GNUls手册说:

   Using color to distinguish file types is disabled both by default and
   with --color=never.  With --color=auto, ls emits color codes only when
   standard output is connected to a terminal.  [...]

我猜你的ls命令的行为就像ls --color=auto默认情况下一样,可能是通过使用别名ls

相关内容