alias ls='ls --color=auto'
-并且我想不带选项地调用普通ls
。唯一的方法就是取消别名,先执行命令,然后再次别名吗?还是有一些漂亮的技巧或解决方法?#1 楼
您还可以在反斜杠前面添加前缀以禁用别名:\ls
编辑:其他相同的方法包括:
使用“命令”:按照Mikel的
command ls
。使用完整路径:
/bin/ls
(根据其他)。引用命令:
"ls"
或'ls'
(根据Mikel注释)。您可以删除别名暂时与
unalias command_name
进行终端会话。评论
这是我执行此操作的标准方法。
– ncmathsadist
2012年5月25日下午1:34
非常好,也可以与tcsh一起使用
–莱文
2012年5月25日13:15
这种方式非常有用。它仅绕过别名,不绕过函数,这使其不同于命令或内置函数。
– Mikel
2012年5月25日下午16:31
好像l \ s做同样的事情。这是错误还是功能?
–尼古拉斯B.
2012年5月25日16:46
这是一个“功能”。仅扩展未引用的别名。因此,您可以将其放在引号中,也可以在任意位置使用反斜杠。请参见bash别名参考。
– Mikel
2012年5月25日17:55
#2 楼
这就是command
命令的用途。尝试
command ls
这告诉外壳程序绕过别名和函数。
bash,zsh和ash / dash支持这种方式。
评论
最佳答案,为什么它不是最受欢迎的? :) +1
– 0xC0000022L
2012年5月25日12:44
因为它会将字符数增加8倍作为反斜杠方法
– JoelFan
2012年5月25日13:12
@STATUS_ACCESS_DENIED这也不适用于tcsh(因此也可能不适用于csh)。 `\`方法可以
–莱文
2012年5月25日13:15
反斜杠功能不安全。虽然它提供了针对名称相似的别名的保护,但它不针对名称相似的功能提供保护。
– Dejay Clayton
15年6月17日在18:48
@JoelFan我宁愿有几个额外的字符,并让我的脚本易于遵循并为每个人使用。而不是一个不直观,不易遗漏,没有充分记录且对旁路功能不起作用的隐斜杠。
–丹尼斯
18/12/18在9:52
#3 楼
别名只是定义的快捷方式。在此示例中,定义的别名是字符串ls
,该字符串执行ls --color=auto
。如果您不希望出现这种情况,则可以使用绝对路径调用二进制ls
。 因此仅执行
/bin/ls
会产生没有颜色的输出,因为它不是您定义的别名。您还可以将别名更改为其他名称,或添加一个新别名仅执行
ls
而没有颜色参数。评论
您必须知道命令在哪里。在某些系统上,/ bin和/ usr / bin之间的划分是任意的。
–基思·汤普森(Keith Thompson)
2012年5月25日20:50
@KeithThompson为此,您可以在某些命令中使用which:ls。
–cst1992
16-4-19的11:44
@ cst1992:如果要使用哪个(或类型),它将通过$ PATH进行查找;您也可以只使用ls或\ ls而不是指定路径。
–基思·汤普森(Keith Thompson)
16年4月19日在15:10
#4 楼
以@uther的答案为基础的另一种方法是使用$(which ...)
或`which ...`
(使用反引号``
)自动查找可执行文件的路径。这将在bash
中起作用:$(which ls)
`which ls`
\就会更短。
更新:根据操作方法在别名命令上使用“哪个”?这似乎根本不可靠。
评论
括号是什么?我猜你的意思是`哪个ls'直接执行二进制文件。
–杏仁核
2012年5月25日9:34
@amyassin:两种语法都是等效的。 (顺便说一句,您如何将反引号引入代码格式?)
– krlmlr
2012年5月25日晚上11:25
实际上(ls)对我不起作用(在Ubuntu 12.04 LTS上),反引号很辛苦,我只是逃脱了:“哪个ls \”。到达那里花了很多时间:)
–杏仁核
2012年5月25日15:39
@ user946850“要在代码范围内包含文字反引号字符,可以使用多个反引号作为开始和结束定界符”。资料来源:Markdown参考。
– Mikel
2012年5月25日16:24
@amyassin:您添加了$吗?
– krlmlr
2012年5月25日下午16:34
#5 楼
就个人而言,我只是避免使用与命令相同的名称来定义别名,因此ls
总是调用实际的命令。我具有别名或函数,用于l
,ll
和lg
等各种选项的组合。 (这意味着我需要在我的unalias ls
或.bashrc
中使用.cshrc
。)我发现操作系统关于我可能更喜欢哪些选项的假设(覆盖
ls
命令本身的设计者的假设)很少与我自己的选择相匹配。个人品味。我碰巧不喜欢ls --color=auto
的外观,它的可读性在黑白与黑白之间变化很大。YMMV,其他解决方案当然仍然很容易理解。
#6 楼
以大写字母键入命令似乎可以正常工作,例如LS
,尽管我不确定为什么。 评论
在哪个外壳,哪个操作系统,哪个终端等?
– Mikel
2012年5月24日23:32
@Mikel有一个包“ sl”,提供“ sl”作为“ ls”。 bash在Ubuntu中给出的提示还说“ LS”由“ sl”提供。
–伊兹卡塔
2012年5月25日0:18
这是Mac OS X 10.7中的bash 4(与Fink一起安装)。它也适用于我别名的其他命令,例如rm和grep。
– asmeurer
2012年5月25日下午2:34
在mn页面上,这只是个玩笑:):LS-显示动画,旨在纠正偶然输入LS而不是ls的用户。
–杏仁核
2012年5月25日9:29
我认为这适用于Mac OS X,因为默认情况下其文件系统不区分大小写。在其他Unix上不起作用。
–詹德
2012年5月25日13:30
评论
请注意以下一些答案:“命令”是完成此操作的唯一安全方法。例如,“。”或“源”内置函数可能会被脚本定义的函数覆盖。 “命令。”或“命令源”是安全地执行源而不调用脚本定义的函数的唯一方法。没有其他替代方法(包括反斜杠方法“ \。”)有效,当然也没有可通过指定完整路径调用的“ / bin / source”替代方法。