首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数独曲解别名

数独曲解别名
EN

Unix & Linux用户
提问于 2020-02-27 16:32:59
回答 2查看 64关注 0票数 0

在我的~/.bashrc中,我设置了alias link='ln -sf'集,它在shell会话期间也相应地工作。

但是,对于根受保护的位置,需要在命令开头使用sudo,它将引发以下错误:link: cannot create link '<$2>' to '<$1>': Operation not permitted

到底发生了什么?我怎么能绕过它?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-02-27 16:46:10

sudo是一个外部命令,它不知道别名。只有你的外壳知道你的别名,而sudo不是它的一部分。

在本例中,我猜想sudo试图运行/usr/bin/link二进制文件,这在我的Linux系统上是一个简单的命令,它总是通过调用link(2)系统调用创建硬链接:

代码语言:javascript
复制
$ link --help
Usage: link FILE1 FILE2
  or:  link OPTION
Call the link function to create a link named FILE2 to an existing FILE1.

      --help     display this help and exit
      --version  output version information and exit

GNU coreutils online help: 
Full documentation at: 
or available locally via: info '(coreutils) link invocation'
票数 6
EN

Unix & Linux用户

发布于 2020-02-27 17:12:18

这里的问题是bash只计算别名命令的第一个单词,并将文本替换为别名的文本。

当您执行sudo 时,bash只是计算第一个单词,即sudo本身,而不是展开别名命令。

解决方法是为sudo本身创建一个别名。

如果创建类似于alias='sudo '的别名(请注意sudo命令后的空格),则可以完成所需的命令。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/570094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档