Terminal

為什麼我在重定向流中看不到轉義序列或顏色輸出是如何實現的?

  • June 12, 2019

在終端中執行ls時,輸出有多種顏色:

ls 控制台輸出

AFAIK 這種著色是通過 espace 序列(vt)完成的。

但執行ls | hexdump -cC只顯示字元和 LF。重定向到文件會導致類似的結果。

ls |  hexdump -cC 控制台輸出

那個怎麼樣?

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別名。

引用自:https://unix.stackexchange.com/questions/524513