LS_COLORS で色付けするときに拡張子を無視する ls

LS_COLORS で色付けするときに拡張子を無視する ls

ls 出力を色分けするように設定しようとしていますLS_COLORSが、何らかの理由でファイル一致パターンがすべて無視されます。実行可能ファイル、ディレクトリなどは正しく色分けされますが、* で始まるファイル一致パターンはすべて完全に無視されるようです。

別のマシンで試してみたところ、期待どおりに動作したので、文字列自体は正しいことがわかっています。また、文字列のこれらの部分を削除すると、色付きの出力が得られなくなるため、fiこれらがや などのキャッチオール値によって上書きされていないこともわかっています。私は、他の種類の ls ではなく、GNU ls を使用していることを確認しました。diLS_COLORS

文字列自体はかなり長いのですが、テスト用に作成した短縮バージョンを以下に示します (実際の文字列と同じですがLS_COLORS、文字列の先頭から約 200 個の拡張子を削除しました)。

*.war=38;5;215:*.wav=38;5;136;1:*.webloc=38;5;116:*.webm=38;5;115:*.webp=38;5;97:*.wma=38;5;137;1:*.wmv=38;5;114:*.woff=38;5;66:*.woff2=38;5;66:*.wrl=38;5;216:*.wv=38;5;136;1:*.wvc=38;5;136;1:*.xcconfig=1:*.xcf=38;5;7:*.xcsettings=1:*.xcuserstate=1:*.xcworkspacedata=1:*.xib=38;5;208:*.xla=38;5;76:*.xln=38;5;7:*.xls=38;5;112:*.xlsx=38;5;112:*.xlsxm=38;5;112;4:*.xltm=38;5;73;4:*.xltx=38;5;73:*.xml=38;5;178:*.xpi=38;5;215:*.xpm=38;5;97:*.xsd=38;5;178:*.xsh=38;5;41:*.yaml=38;5;178:*.yml=38;5;178:*.z[0-9]{0,2}=38;5;239:*.zcompdump=38;5;241:*.zig=38;5;81:*.zlogin=1:*.zlogout=1:*.zprofile=1:*.zsh=38;5;172:*.zshenv=1:*.zwc=38;5;241:*.zx[0-9]{0,2}=38;5;239:bd=38;5;68:ca=38;5;17:cd=38;5;113;1:di=38;5;30:do=38;5;127:ex=38;5;208;1:pi=38;5;126:fi=0:ln=target:mh=38;5;222;1:no=0:or=48;5;196;38;5;232;1:ow=38;5;220;1:sg=48;5;3;38;5;0:su=38;5;220;1;3;100;1:so=38;5;197:st=38;5;86;48;5;234:tw=48;5;235;38;5;139;3:

ここで何が起こっているのか分かりますか?

答え1

(この問題に遭遇した人のために要約すると、見ているファイルが自分によって実行可能ではないことを再確認してください。実行可能であれば、拡張子に対応する色ではなく、$LS_COLORS の 'ex' セクションの色がすべて割り当てられます。)

これはオペレーターのエラーであることが判明しました。テスト ディレクトリ内のすべてのファイルが予期せず実行可能として設定されていたため、実行可能ファイルに割り当てた色 (オレンジ) がすべて適用されました。$LS_COLORS の内容に基づいて色付けされる拡張子を持つファイルから実行可能ビットを手動で削除すると、期待どおりに動作しました。

関連情報