И это всё МОЁ
1.

Есть команда на баше:


$ tree


Если я выполню эту команду в своём терминале - я увижу цвета.


Есть другая команда на баше:


$ tree | cat


Если я выполню эту команду в своём терминале - я не увижу цвета.


У меня есть догадки что это как-то связано c переменными окружения.


Хотелось бы услышать наиболее «глубинный» ответ (хотя бы в виде ссылок, но желательно с пояснениями). Ещё прошу поправить терминологию в моём сообщении.


2.

Вот ещё строчка из $ man ls.1:


ls emits color codes only when standard output is connected to a  terminal.


Пожалуйста, разъясните мне её.