настроить цвет ls для каталогов содержат указанные файлы / с

Как я могу раскрасить каталоги, содержащие файлы со словом INCORRECT внутри?

Пример:

У меня есть 3 каталога, которые содержат файл журнала.

dir_a/log dir_b/log dir_c/log 

Файл log in dir_c содержит слово INCORRECT Возможно ли получить раскрашенный ls вывод следующим образом?

 dir_a --> blue dir_b --> blue dir_c --> red 

  • Приглашение командной строки tcsh для показа недоделанных заданий
  • Выполнение полной команды foreach
  • Как достичь переменной косвенности (обратитесь к переменной, имя которой хранится в другой переменной) в tcsh
  • Как установить неограниченный размер в файл истории для tcsh?
  • Исходный сценарий оболочки автоматически в терминале
  • Подавлять сообщения о запуске на stdout?
  • Что означает синтаксис этих эхо-команд?
  • Почему руководство для команды «где» недоступно
  • 2 Solutions collect form web for “настроить цвет ls для каталогов содержат указанные файлы / с”

    Это должно сделать работу:
    «INCORRECT» в тексте внутри файлов внутри папок и файлов в данной папке:

     SEARCH_DIR="/var/log" for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1); do DIR_CHECK=$(grep INCORRECT $i) [[ "$DIR_CHECK" =~ "INCORRECT" ]] \ && echo -e "\e[00;31m$i\e[00m" \ || echo -e "\e[00;32m$i\e[00m" done 

    «INCORRECT в тексте внутри файлов внутри папок в данной папке»:

     SEARCH_DIR="/var/log" for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1 -type d); do DIR_CHECK=$(grep INCORRECT $i) [[ "$DIR_CHECK" =~ "INCORRECT" ]] \ && echo -e "\e[00;31m$i\e[00m" \ || echo -e "\e[00;32m$i\e[00m" done 

    «INCORRECT» в имени папок и файлов в данной папке:

     SEARCH_DIR="/var/log" for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1); do DIR_CHECK=$(echo $i | grep INCORRECT) [[ "$DIR_CHECK" =~ "INCORRECT" ]] \ && echo -e "\e[00;31m$i\e[00m" \ || echo -e "\e[00;32m$i\e[00m" done 

    «INCORRECT» в имени папок в указанных папках:

     SEARCH_DIR="/var/log" for i in $(find $SEARCH_DIR -maxdepth 1 -mindepth 1 -type d); do DIR_CHECK=$(echo $i | grep INCORRECT) [[ "$DIR_CHECK" =~ "INCORRECT" ]] \ && echo -e "\e[00;31m$i\e[00m" \ || echo -e "\e[00;32m$i\e[00m" done 

    Нет, по крайней мере, в текущих реализациях ls. Максимум, который вы можете сделать, – это выбирать цвета в зависимости от типа файла (изображение, звукозапись и т. Д. На основе маски имени файла), тип ввода (файл, каталог, сокет и т. Д.) И, частично, разрешения (исполняемые флаги). Вы не можете применять цвет для каталога, зависящий даже от файлов, которые он содержит, не говоря о содержимом этих файлов.

    Interesting Posts

    Заменить «-из» на «это» в начале строки

    Создание Live USB для Crunchbang

    В системах Unix, почему мы должны явно открывать файлы `open ()` и `close ()`, чтобы они могли читать `read ()` или `write ()` them?

    Omnios имеет проблемы с использованием зоны с набором данных NFS NFS

    Предупреждать пользователей о том, что система идет на перезагрузку

    Как пропустить специальные буферы при уничтожении текущего буфера?

    Есть ли утилита netcat, которая использует unix-сокеты?

    Разный шрифт в Linux Mint KDE влияет на поиск Google и Gmail: почему и как настроить?

    case + как реализовать равный или меньше или больше в случае синтаксиса

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

    Почему команда killall убивает только один экземпляр процесса?

    Как я могу получить время разблокировки экрана в Gnome на более поздних вариантах Red Hat?

    Проблема кэширования dav2fs при сжатии Debian

    Как я могу использовать беспроводную сеть и ethernet для работы с ubuntu?

    sudo: nocorrect: команда не найдена

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