• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:lsコマンドの色設定が反映されない)

lsコマンドの色設定が反映されない

このQ&Aのポイント
  • lsコマンドの色設定が正しく反映されない問題についての質問です。
  • 質問者はCentOS5.7でtcshを使用しており、lsコマンドで表示されるファイルの色分けを変更したいと考えています。
  • しかし、.dir_colorsに設定を記述し、evalコマンドで反映させても、一部のファイルの色が正しく表示されない問題が発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

こちらで確認したところ、LS_COLORSにないものは、デフォルトの設定が使われるようです。 EXEC と、EXECに空のものを追加すると、無効にできるようです そのかわり、全ての実行属性ファイルが色無しになってしまいます。

jshannon9
質問者

お礼

ご回答いただきありがとうございます。 こちらの環境でもご指摘の点が確認できました。 実行権限のあるなしに関わらず、 拡張子で色分けすることはかないませんでしたが、 「EXECに指定しない ---> デフォルトの設定が反映される」 ということが確認できただけでも収穫になりました。 重ねてお礼申し上げます。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

LS_COLORSが無い、ということは、設定できていない、ということです。 > eval `dircolors ~/.dir_colors -c` をどこに書きました?あるいは、どこで実行してますか? dircolors自体は環境変数LS_COLORSを設定するためのシェルでのコマンドを出力するプログラム。それをevalで現在のシェルに適用することで、LS_COLORS環境変数を設定、lsはLS_COLORS環境変数の中身を見て色を決定します。 なので ・evalを実行したシェルと、それから呼び出されたシェルでのみ有効。 ・ログアウトしたら 無効。設定のしなおし となります。 常時使いたいときは、.loginとか.cshrcとかに記述します

jshannon9
質問者

お礼

ご回答ありがとうございます。 eval以下の命令文は~/.tcshrcに書きこんでいます。 前回の補足で私の方に勘違いがありまして、環境変数LS_COLORSはどうやらちゃんと設定されているようでした。(setコマンドで変数を確認していました。申し訳ありません。) 以下がその内容です。 LS_COLORS=no=32:fi=32:di=34:ow=32:*.txt=31: しかし、これでもなお問題が解決されず、実行権限つきのファイルが緑太字で表示されてしまいます。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

.dir_colorsの中身、それだけですか? 実行属性付きファイルの色は EXEC で指定します。 正しく設定できていれば、echo $LS_COLORSとしたときに no=32:fi=32:di=34:ow=32:*.txt=31: と表示されるはずです。そうではなくて、中に ex=32;01 とかも混っていませんか?

jshannon9
質問者

お礼

すいません、補足の記述の追加です。 LS_COLORSという変数名はないのですが、 COLORSという変数名で以下のような設定がありました。 >echo $COLORS /etc/DIR_COLORS.xterm

jshannon9
質問者

補足

素早いご返答ありがとうございます。 .dir_colorsの中身は、上記したもののみで、 EXECでも指定していなかったのですが、 ご指摘いただいたとおりにechoしてみると >echo $LS_COLORS 照合パターンに合いません. となっており、$LS_COLORSという変数名が存在しませんでした。 正しく設定が反映されていないということでしょうか? >eval `dircolors ~/.dir_colors -c` で設定を反映したつもりだったのですが、 この方法が間違っているのでしょうか?

関連するQ&A