假设我在 bash - alias ls='ls --color=auto'
- 中有以下别名,并且我想ls
不带选项地调用普通。唯一的方法是取消别名,执行命令,然后再次别名吗?或者有一些巧妙的技巧或解决方法?
答案1
答案2
答案3
别名只是一个定义的快捷方式。在此示例中,定义的别名是字符串ls
,它执行ls --color=auto
。如果您不希望出现这种行为,可以ls
使用绝对路径调用二进制文件。
因此执行/bin/ls
将产生没有颜色的输出,因为它不是您定义的别名。
您还可以将别名更改为不同的名称,或者添加一个在ls
没有颜色参数的情况下执行的新别名。
答案4
就我个人而言,我只是避免定义与命令同名的别名,因此ls
总是调用实际的命令。我有各种选项组合的别名或函数,例如l
、ll
和lg
。 (这意味着我需要unalias ls
在我的.bashrc
或.cshrc
.)
我发现操作系统关于我可能喜欢哪些选项的假设(覆盖命令本身设计者的假设ls
)很少符合我自己的个人品味。我碰巧不喜欢 的外观ls --color=auto
,它的易读性在白底黑字和黑底白字之间差异很大。
YMMV,其他解决方案当然还是值得了解的。