假设我在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.