【发布时间】:2018-05-13 14:23:06
【问题描述】:
我的 bashrc 的相关部分如下所示:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto --list-directories-first' # use colors
# ...
else
alias ls='ls --list-directories-first' # don't use colors
# ...
fi
这是为了允许动态确定部分别名(具体来说,是否输出颜色)。但是每次重写整个别名维护起来很繁琐,我宁愿添加到该别名而不是完全替换它,所以我想要这样的东西:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto' # use color output
# ...
fi
alias ls='ls --list-directories-first' #
# ...
但是后面的 alias ls=... 语句替换了旧的别名。有没有办法修改或逐步构建别名而不是替换它?
【问题讨论】:
-
usecolors=; [ -x /usr/bin/dircolors ] && usecolors='--color=auto'; alias ls="ls --list-directories-first $usecolors" -
据我所知
ls没有--list-directories-first选项。但是有--group-directories-first。 -
@Sergio 是的,我是凭记忆写的,这可能就是我的意思
-
有点切题,但为什么需要
dircolors出现才能使用--color? -
@chepner 我实际上并没有研究它是否有必要,但这是 zsh 自动生成的
.bashrc的剩余部分,我认为这是有原因的。可能不是最好的理由。