지정된 파일이 포함된 디렉토리의 ls 색상 사용자 정의

지정된 파일이 포함된 디렉토리의 ls 색상 사용자 정의

단어를 사용하여 파일이 포함된 디렉토리에 색상을 지정하는 방법잘못된안에?

예:

로그 파일이 포함된 디렉터리가 3개 있습니다.

dir_a/log
dir_b/log
dir_c/log

dir_c의 파일 로그에 다음 단어가 포함되어 있습니다.잘못된 아래와 같이 컬러 ls 출력을 얻을 수 있습니까?

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

답변1


이렇게 하면 폴더 내의 파일 및 지정된 폴더 내의 파일 내의 텍스트에서 "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

"지정된 폴더에 있는 폴더 내의 파일 내부 텍스트가 올바르지 않습니다.":

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

해당 폴더의 폴더 이름이 "잘못됨"입니다:

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

답변2

아니요, 적어도 현재 ls 구현에서는 그렇습니다. 파일 유형(파일 이름 마스크를 기반으로 한 이미지, 녹음 등), 항목 유형(파일, 디렉터리, 소켓 등) 및 부분 권한(실행 가능 플래그)을 기준으로 색상을 선택할 수 있는 경우는 많아야 합니다. 심지어 포함된 파일에 따라서도 디렉토리에 색상을 적용할 수 없습니다.콘텐츠이 파일들.

관련 정보