Ls
為包含指定文件的目錄自定義 ls 顏色
如何為目錄著色,其中包含內部帶有單詞INCORRECT的文件?
例子:
我有 3 個包含日誌文件的目錄。
dir_a/log dir_b/log dir_c/log
dir_c 中的文件日誌包含單詞INCORRECT 是否可以獲得如下彩色 ls 輸出?
dir_a --> blue dir_b --> blue dir_c --> red
這應該可以完成工作:
文件夾內的文件和給定文件夾內的文件內的文本中的“不正確”:
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
給定文件夾中的文件夾和文件名稱中的“不正確”:
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