更改我的目录列出的目录的颜色

时间:2014-01-09 20:08:08

标签: bash ls

我尝试通过编辑.dircolors文件来更改ls命令的目录列表的颜色/属性,但它不起作用。

在此之前,值得一提的是我在bash.bashrc文件中添加了以下更改。

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
[ -e "$HOME/.dircolors" ] && DIR_COLORS="$HOME/.dircolors"
[ -e "$DIR_COLORS" ] || DIR_COLORS=""
eval "`dircolors -b $DIR_COLORS`"
alias ls='ls --color=auto'
#alias dir='ls --color=auto --format=vertical'
#alias vdir='ls --color=auto --format=long'
fi

另外,在bashrc中添加了以下代码,用于指定dircolors文件路径。

d=.dircolors
test -r $d && eval "$(dircolors $d)"

我对这些事情只是一个模糊的想法,因为我刚刚开始使用ubuntu。 那么有人可以帮我找出为什么我不能改变ls命令颜色的原因吗?

1 个答案:

答案 0 :(得分:2)

您似乎正在进行一些测试,并且可以避免多次(不必要的)次数。这是Ubuntu框架.bashrc文件中的标准习语:

if [ -x /usr/bin/dircolors ]; then
    [ -r ~/.dircolors ] && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
fi

这会测试您的系统上dircolors程序是否可用(以及您是否可执行)。如果是,则检查主目录中是否存在.dircolors文件(并且是可读的)。如果是这样,它将使用您的dircolors文件作为输入执行.dircolors命令,并eval使用输出(基本上只设置LS_COLORS环境变量)。如果您没有.dircolors文件,则它会使用默认颜色执行dircolors(并再次输出eval uates。

完成后,您可以检查它产生的设置:

echo $LS_COLORS

您可以通过运行了解所有这些颜色的含义:

dircolors --print-database