Why do colors not show up (control characters) when piping stdout/stderr on *nix systems?
Como comentado por jimij , eles aparecem.
No entanto, alguns programas (provavelmente a maioria dos programas que emitem código de escape ANSI s) estão detectando que sua saída não é um tty usando isatty (3) por exemplo como isatty(STDOUT_FILENO)
; e isso é uma boa característica, porque lidar com fugas em pipelines quando você não as quer é uma dor.
Vários programas documentam uma maneira de forçar isso, por exemplo ls (1) tem --color=always
Leia a documentação dos comandos relevantes.