bashrcでエイリアスをインクリメンタルとして定義できますか?

bashrcでエイリアスをインクリメンタルとして定義できますか?

現在私の.bashrcには次のものがあります。

if [ -x /usr/bin/dircolors ]; then
    # ...
    alias ls='ls --color=auto -F'
    # ...
fi

# xxx
alias ll='ls -AltF'

lsさて、私もそのオプションを使いたいとしましょう--group-directrories-first

alias ls='ls --group-directrories-first'私がしなければならないことは、どこにでも行を追加することです# xxx

しかし、これはaliasオプションを完全に置き換え--color=auto-F消えました。

この問題をどのように解決できますか?

答え1

これを行う1つの方法は、変数のオプションを追跡することです。

lsOptions=""

if [ -x /usr/bin/dircolors ]; then
    lsOptions="$lsOptions --color=auto -F"
fi

if [ something else]; then
    lsOptions="$lsOptions --group-directories-first"
fi

## After all the ifs have been evaluated
alias ls="ls $lsOptions"

関連情報