4

Red Hat Enterprise Linux 5.x のターミナルで、以下を実行します。

[$] Env

戻り値 (とりわけ):

"LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33 . . ."

LS_COLORSファイル内のほとんどのコンテンツは次のとおりです。

/etc/DIR_COLORS

しかし、値「no=00:fi=00:di=01;34:ln=01;36:pi=40;33など」、システムを調べた後でも、見つけることに成功しません。

これらの値はどのファイルで定義されていますか?

はい、コンテンツを好きな値に設定できることはわかっていますが、上記の値が定義されている場所がLS_COLORS気になります。

4

3 に答える 3

8

私はあなたが探しているものがで見つけることができると思います/etc/profile.d/colorls.sh

# color-ls initialization

alias ll='ls -l' 2>/dev/null
alias l.='ls -d .*' 2>/dev/null

COLORS=/etc/DIR_COLORS
[ -e "/etc/DIR_COLORS.$TERM" ] && COLORS="/etc/DIR_COLORS.$TERM"
[ -e "$HOME/.dircolors" ] && COLORS="$HOME/.dircolors"
[ -e "$HOME/.dir_colors" ] && COLORS="$HOME/.dir_colors"
[ -e "$HOME/.dircolors.$TERM" ] && COLORS="$HOME/.dircolors.$TERM"
[ -e "$HOME/.dir_colors.$TERM" ] && COLORS="$HOME/.dir_colors.$TERM"
[ -e "$COLORS" ] || return

eval `dircolors --sh "$COLORS" 2>/dev/null`
[ -z "$LS_COLORS" ] && return

if ! egrep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null ; then
        alias ll='ls -l --color=tty' 2>/dev/null
        alias l.='ls -d .* --color=tty' 2>/dev/null
        alias ls='ls --color=tty' 2>/dev/null
fi

LS_COLORS変数は、の出力の評価によって設定されます。出力はdircolors --sh "$COLORS" 2>/dev/null、から値を受け取ります/etc/DIR_COLORS。つまり、の値はデフォルトLS_COLORSと同じです。DIR_COLORS

これは、次の出力を比較することで証明できますdircolors --sh "$COLORS"

$ dircolors --sh "$COLORS" 
LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:';
export LS_COLORS

そしてecho $LS_COLORS

$ echo $LS_COLORS
no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:

そして、あなたはそれを持っています。

于 2009-11-21T19:29:03.440 に答える
3
  /etc/DIR_COLORS 

上記のものは次のものと同じではありません。

 /etc/DIR_COLORS.xterm.

SSH端末ファイルでログインした場合

/etc/DIR_COLORS.xterm 

使用されている。

于 2012-09-27T12:12:40.890 に答える
0

「dircolors」マンページから ::

FILE が指定されている場合は、それを読み取って、どのファイル タイプと拡張子にどの色を使用するかを決定します。それ以外の場合は、コンパイル済みのデータベースが使用されます。これらのファイルのフォーマットの詳細については、「dircolors --print-database」を実行してください。

これらのコードはシステムでコンパイルされているようです

于 2009-03-05T15:48:46.080 に答える