
単語を使用してファイルを含むディレクトリに色を付ける方法間違った中?
例:
ログファイルを含む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実装ではそうです。ファイルの種類(ファイル名マスクに基づく画像、録音など)、アイテムの種類(ファイル、ディレクトリ、ソケットなど)、および部分的な権限(実行可能フラグ)に基づいて色を選択できる場合が多いはずです。インクルードされたファイルによっては、ディレクトリに色を適用することはできません。コンテンツこれらのファイル。