2017-05-24 9 views
1

私はoh-my-zshスイートからlsの既存のエイリアスを持っています。シェルに既存のエイリアスを追加する方法は?

[email protected] ~ % alias ls 
ls='ls -G' 
[email protected] ~ % 

この別名は、OS、カラー設定などのさまざまな設定に依存します。 、

LC_COLLATE=C ls -G 

しかし、予想通り、これは動作しません「-G」なくなっている:したがって、私はただ上書きすることはできませんし、希望の先頭に追加、既存のエイリアスをこのような何かに

[email protected] ~ % alias ls='LC_COLLATE ls' 
[email protected] ~ % alias ls 
ls='LC_COLLATE ls' 
[email protected] ~ % 

私が行うことができます:

[email protected] ~ % alias ls 
ls='ls -G' 
[email protected] ~ % alias ls="LC_COLLATE=C `alias ls|sed -E "s/ls='(.*)'/\1/"`" 
[email protected] ~ % alias ls 
ls='LC_COLLATE=C ls -G' 
[email protected] ~ % 

醜い! :)

いずれかの洗練されたソリューションですか?

答えて

1

sedのような外部プログラムへの依存性はありません。

eval old$(alias ls);alias ls="LC_COLLATE=C $oldls" 
関連する問題