假设我在bash中具有以下别名alias ls='ls --color=auto'--我想ls不带选项地调用普通对象。唯一的方法就是取消别名,先执行命令,然后再次别名吗?还是有一些漂亮的技巧或解决方法?
假设我在bash中具有以下别名alias ls='ls --color=auto'--我想ls不带选项地调用普通对象。唯一的方法就是取消别名,先执行命令,然后再次别名吗?还是有一些漂亮的技巧或解决方法?
Answers:
别名只是定义的快捷方式。在此示例中,定义的别名是ls执行的字符串ls --color=auto。如果您不想要这种行为,则可以ls使用绝对路径调用二进制文件。
因此执行只是/bin/ls会产生没有颜色的输出,因为它不是您定义的别名。
您也可以将别名更改为其他名称,或者添加一个新别名,该别名仅在ls不使用color参数的情况下执行。
/bin和/usr/bin是任意的。
                    which一些命令:which ls。
                    which(或type),它将通过$PATH; 进行查找。您最好只使用ls或\ls不指定路径。
                    以@uther的答案为基础的另一种方法是使用$(which ...)或`which ...`(使用backticks ``)自动查找可执行文件的路径。这将适用于bash:
$(which ls)
`which ls`
毫无疑问,仅在命令前加上a \会短很多。
更新:根据如何在别名命令上使用`哪个`?,这似乎一点都不可靠。
`which ls`直接执行二进制文件。
                    (which ls)对我不起作用(在Ubuntu 12.04 LTS上),反引号很辛苦,我只是逃脱了:“`ls \”。到那儿花了很多时间才编辑:)
                    $吗?
                    以大写字母键入命令似乎可以正常工作,例如LS,虽然我不确定为什么。
LS - display animations aimed to correct users who accidentally enter LS instead of ls.