Размещение конфигурации в ~ / .bash_profile
работает. Другой вариант - поместить конфигурацию в ~ / .profile
, но этот файл будет проигнорирован, если файл ~ / .bash_profile
уже существует в файловой системе.
Я слепо предполагаю, что ваш дистрибутив, как и многие другие, имеет псевдоним, который отображает ls
в ls --color=auto
. ls -la --color=always | sed …
должно работать.
(Параметр auto
заставляет, вообще говоря, ls
проверять, идет ли его вывод на дисплей или нет, и только цвет для дисплея. Причина этого в том, что цвет реализуется escape-последовательностями, то есть невидимыми командными символами, поэтому программа может спутать их с частью имени файла и тому подобное.)
В macOS ls
не является GNU ls
и не принимает вариант --color=always
, который пользователи Linux могут ожидать от этой функциональности.
В версии ls
для macOS цвета управляются двумя переменными:$CLICOLOR
и $CLICOLOR_FORCE
. Если первое определено, терминал, указанный в $TERM
, поддерживает цвет, а вывод идет на терминал, тогда этот вывод будет окрашен, как и опция --color=auto
GNU. Если последняя переменная также определена, конечное условие отбрасывается, как в GNU --color=always
.
Таким образом, чтобы передать цвет в sed
, вам понадобится что-то вроде следующего:
CLICOLOR_FORCE=1 ls -la | sed -En '/Desktop/q;p'