lsのカスタムカラーは一部のカテゴリに正しく適用されていますが、他のカテゴリは無視されました。

lsのカスタムカラーは一部のカテゴリに正しく適用されていますが、他のカテゴリは無視されました。

の助けを借りて色をdircolors変更しました。ls私の.dircolorsファイルは

FILE                   00;97
DIR                    00;96
LINK                   00;95
MULTIHARDLINK          00;34
ORPHAN                 91;01  # symlink to nonexistent file
MISSING                00;00 
EXEC                   91;00  # this is for files with execute permission

dircolors .dircolors >> .bashrcその後、ls出力は設定で定義されているとおりに正しく色付けされます。実行ファイルを除く。赤(91; 00)の代わりにデフォルトのターミナル前景色を使用して色を付けます。例えば、

xterm -fg yellow # Executables become yellow on ls
xterm -fg green  # Executables become green on ls

これは、ターミナル(Xterm、Terminator、Virtual Console...)とは何の関係もありません。

私もラインだけを含むdircolorsファイルを試しましたがEXEC、これはラインを生成しました。

export LS_COLORS='ex=91;00:'

私は.bashrc実行ファイルにまだ色がありません。

実行可能ファイルを着色するときに何が間違っているのでしょうか?

答え1

lsこれらの設定を端末に送信される文字列と考えてください。それは彼らが何を意味するのか分からない。送るESC [ m ひも ;このエスケープシーケンスを解釈する端末に。

端末エスケープシーケンスの事実上の標準は次のとおりです。xterm。このCSIドキュメントではESC [PSは整数です。午後セミコロンで区切られた整数のリストなので、関連するエスケープシーケンスは以下にリストされています。CSI Pm m

端末はパラメータを順次適用します。パラメータ0は、色を含むすべての属性をリセットします。したがって、91;00同じように代わりに0使用してください91(または0;91すべてのプロパティをリセットするには、前景色を設定します)。前景色と強度は独立した属性なので91;01同じです。01;91

ls通常、デフォルトのプロパティで始まり、各色名の末尾からデフォルトのプロパティにリセットされるため、これらの設定00;では重複します。

関連情報