2014-01-09 54 views
0

我尝试通过编辑.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命令的颜色的原因吗?

回答

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)。通过运行

echo $LS_COLORS 

你可以阅读更多的关于什么所有这些颜色的含义:

当它这样做,你可以检查它产生的设置

dircolors --print-database