Reputation: 13
I have existing alias for ls from oh-my-zsh suite.
igor@shogun ~ % alias ls
ls='ls -G'
igor@shogun ~ %
This alias depends on various settings like OS, color settings and so on. Therefore I can't just overwrite and would like prepend existing alias to something like this:
LC_COLLATE=C ls -G
But this does not work as expected, '-G' is gone:
igor@shogun ~ % alias ls='LC_COLLATE ls'
igor@shogun ~ % alias ls
ls='LC_COLLATE ls'
igor@shogun ~ %
I can do:
igor@shogun ~ % alias ls
ls='ls -G'
igor@shogun ~ % alias ls="LC_COLLATE=C `alias ls|sed -E "s/ls='(.*)'/\1/"`"
igor@shogun ~ % alias ls
ls='LC_COLLATE=C ls -G'
igor@shogun ~ %
Ugly! :)
Any elegant solution?
Upvotes: 1
Views: 160
Reputation: 2012
No dependency to external program like sed.
eval old$(alias ls);alias ls="LC_COLLATE=C $oldls"
Upvotes: 1