我现在有一个别名,用来表示来自我的套间的ls。
igor@shogun ~ % alias ls
ls='ls -G'
igor@shogun ~ %这个别名依赖于各种设置,如OS、颜色设置等等。因此,我不能简单地覆盖并希望将现有的别名添加到这样的内容中:
LC_COLLATE=C ls -G但这不像预期的那样起作用,'-G‘消失了:
igor@shogun ~ % alias ls='LC_COLLATE ls'
igor@shogun ~ % alias ls
ls='LC_COLLATE ls'
igor@shogun ~ %我能做到:
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 ~ %丑陋!:)
有什么优雅的解决方案吗?
发布于 2017-05-24 07:15:10
不依赖像sed这样的外部程序。
eval old$(alias ls);alias ls="LC_COLLATE=C $oldls"https://stackoverflow.com/questions/44150591
复制相似问题