Символы / программные ссылки с цветовой координацией на основе того, на что они ссылаются

Есть ли способ покрасить координатные символические ссылки / программные ссылки на основе того, где они связаны, или, может быть, кем они принадлежат? (Например, для окраски вывода ls например)?

Чтобы дать вам пример того, почему я думаю, что это может быть аккуратным, у меня есть учетная запись на сервере на работе, и я могу установить программное обеспечение в свой родительский каталог и делать программные ссылки в каталогах, находящихся на моем пути, но я не могу связать в /usr/local/bin например, поскольку я не являюсь sudoer. Таким образом, я могу предусмотреть ситуацию, когда программа, которую я связываю, заканчивается тем же дескриптором в PATH, что и установленная централизованно …

Надеюсь, этот гипотетический пример иллюстрирует, что я имею в виду: скажем, я привязываю какую-то программу, установленную в ~/newprogram/ к каталогу ~/Apps/ который я уже установил для своего PATH.

Если я хочу вызывать новую программу, и я делаю это с автозаполнением, возможно, уже существует приложение, установленное администраторами, которое просто использует одно и то же имя символьной ссылки (если это возможно, я еще не проверил). Когда я вставляю autocomplete подстроку имени программы, мне должны быть представлены все различные варианты – скажем, выглядит примерно так:

 user@server:~$ newprog #double tab: newprog newprogram newprogram 

Таким образом, существует несколько совпадений и 2 с тем же самым именем ярлыка / программы на пути, который связан или напрямую. И скажем, что один из них «мой», а другой – из /usr/local/bin .

Может ли каждое появление «newprogram» быть окрашено таким образом, что новая программа, которая ссылается на мою символическую ссылку, является одним цветом, а другое появление «newprogram» окрашено, чтобы указать, что оно присутствует в каком-то другом каталоге в PATH (например, /usr/local/bin/ )?

РЕДАКТИРОВАТЬ:

Простите, да, забыл упомянуть, что это будет на Ubuntu для этого конкретного сервера.

EDIT 2:

Большая часть цвета выполняется через мой .bashrc который смотрит на /usr/bin/dircolors но это влияет только на выходные мои выполненные команды ( ls и т. Д.), А не на поведение автозаполнения.

Это то, что у меня есть в моем .bashrc в данный момент, которое, как я признаю, было бесстыдно украдено из какого-то рода «show us your bashrc».

 # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\$ else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls -h --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi 

ИЗМЕНИТЬ 3:

Пример измененного поведения символических ссылок: введите описание изображения здесь

raxml и prunier – это символические ссылки, которые ранее были синими.

Однако вывод автозаполнения выше не имеет значения для любой символической ссылки (например, tf)

One Solution collect form web for “Символы / программные ссылки с цветовой координацией на основе того, на что они ссылаются”

GNU ls дает вам выбор между покрасками файлов по типу или (если данный тип не окрашен) шаблоном. Это делается программой dircolors которая имеет встроенную базу данных типов, узоров и цветов. ls не заботится о самом пути каталога. Аспект «где они относятся» нелегко сделать с этой программой. Символьные ссылки по сравнению с обычными файлами просты.

Вы можете легко изменить базу данных, распечатав ее в файл, используя

 dircolors -p >myfile 

В зависимости от системы запуск вашей оболочки может выглядеть как /etc/DIRCOLORS ). После редактирования используйте dircolors для присвоения значения LS_COLORS :

 eval 'dircolors myfile' 

В руководстве по конфигурации dir_colors описывается база данных и упоминается функция, которую вы можете изменить:

Цветовая последовательность LINK
Указывает цвет, используемый для символической ссылки.

или в печатной (по умолчанию) базе данных

 LINK 01;36 # symbolic link. (If you set this to 'target' instead of a # numerical value, the color is as for the file pointed to.) 

Пример сочетает жирный и голубой . Вы можете использовать другую комбинацию цветов, изменив эту строку. (Кстати, справочная страница dir_colors относится к «ярким»: ISO 6429 выделяется жирным шрифтом ).

bash не использует ls для автозаполнения, а ls окраска отделена от bash . Тем не менее, эквивалентная функция была добавлена в 2014 году в bash которая использует одну и ту же переменную LS_COLORS чтобы указать, какие цвета могут отображаться. Это особенность bash 4.3, как показано в руководстве bash :

colored-stats
Если установлено значение `on ', Readline отображает возможные завершения с использованием разных цветов для указания их типа файла. Определения цвета берутся из значения переменной среды LS_COLORS . По умолчанию используется значение `off '.

Чтобы использовать его, добавьте

 set colored-stats on 

к вашему .inputrc файлу.

Дальнейшее чтение:

  • dircolors – настройка цвета для ls
  • dir_colors – файл конфигурации для dircolors (1)
  • Перенос папки на NAS-сервер
  • Хотя часть списка udevadm я фиксирую для правил
  • ln дает разные результаты при многократном запуске
  • Что означает `l` в листинге` ls`?
  • Почему в / bin есть сочетание символических ссылок и hardlinks?
  • Есть ли все равно, чтобы автоматически монтировать файловую систему, когда я открываю символическую ссылку на каталог в этой файловой системе?
  • Могут ли символические ссылки охватывать разные файловые системы в Unix или Linux?
  • Символьная ссылка не является рекурсивной
  • Чего стоит?
  • cd в каталог символически связанного файла
  • Действительно ли символические ссылки влияют на использование диска?
  • Interesting Posts

    systemd : задание raspi-config.service / start удалено, чтобы разбить порядок заказа, начиная с basic.target/start

    зацикливание команды без ожидания первого запуска

    NAO-робот, работающий на базе Gentoo, не может автоматически подключаться к Wi-Fi

    список файлов с помощью символической ссылки

    Как активные вкладки на окнах через терминал? У wmctrl нет опции

    Каким образом можно определить (из сценария), установлено ли программное обеспечение?

    Загрузка из копии структуры каталогов Linux

    Настройка производительности OpenBSD (рабочий стол)

    Запуск процесса с более высоким приоритетом

    Как использовать dpkg -i для установки пакета и зависимостей, где все зависимости находятся в одной папке

    Отображение адресов IPv6 на IPv4

    Linux 2.6.36.4, GCC 4.7.2, получение множества предупреждений «с переменным набором, но не используемых»

    Как я могу использовать Mint Live DVD с отдельным постоянным хранилищем настроек на USB-накопителе?

    Как я могу выяснить, из каких pty из qemu?

    Есть ли аргумент dpkg для предупреждения о несовместимостях / нарушениях?

    Linux и Unix - лучшая ОС в мире.