运行由别名隐藏的命令

运行由别名隐藏的命令

假设我在 bash - alias ls='ls --color=auto'- 中有以下别名,并且我想ls不带选项地调用普通。唯一的方法是取消别名,执行命令,然后再次别名吗?或者有一些巧妙的技巧或解决方法?

答案1

您还可以在前面加上反斜杠来禁用别名:\ls

编辑:执行相同操作的其他方法包括:

使用“命令”:command ls按照米克尔

使用完整路径:/bin/ls按照乌瑟尔

引用命令:"ls"'ls'按照 Mikel 的评论。

您可以使用 临时删除该终端会话的别名unalias command_name

答案2

这就是该command命令的用途。

尝试

command ls

这告诉 shell 绕过别名和函数。

这种方式支持巴什,桀骜, 和/短跑。

答案3

别名只是一个定义的快捷方式。在此示例中,定义的别名是字符串ls,它执行ls --color=auto。如果您不希望出现这种行为,可以ls使用绝对路径调用二进制文件。

因此执行/bin/ls将产生没有颜色的输出,因为它不是您定义的别名。

您还可以将别名更改为不同的名称,或者添加一个在ls没有颜色参数的情况下执行的新别名。

答案4

就我个人而言,我只是避免定义与命令同名的别名,因此ls总是调用实际的命令。我有各种选项组合的别名或函数,例如llllg。 (这意味着我需要unalias ls在我的.bashrc.cshrc.)

我发现操作系统关于我可能喜欢哪些选项的假设(覆盖命令本身设计者的假设ls)很少符合我自己的个人品味。我碰巧不喜欢 的外观ls --color=auto,它的易读性在白底黑字和黑底白字之间差异很大。

YMMV,其他解决方案当然还是值得了解的。

相关内容