首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为sudo的一个符号链接,为什么sudoedit有不同的行为?

作为sudo的一个符号链接,为什么sudoedit有不同的行为?
EN

Stack Overflow用户
提问于 2022-07-07 11:41:04
回答 2查看 84关注 0票数 1

最近,我学习了两个简洁的命令,sudoeditsudo -e,它们帮助我在启用了我最喜欢的编辑器配置的情况下编辑一个不可写的文件。另外,我认为sudoedit命令只是一个将-e标志传递给sudo的包装器。但是,我发现sudoedit命令只是指向sudo的一个符号链接。

代码语言:javascript
复制
lrwxrwxrwx 1 root root    4 Jun 22 04:49 sudoedit -> sudo

所以我想知道,作为一个象征性的链接,为什么sudoeditsudo有不同的行为?这是怎么发生的?

EN

回答 2

Stack Overflow用户

发布于 2022-07-08 14:39:54

它隐藏在Lajos Arpad的回答中(“当被调用为sudo编辑时”.)。

“它是如何发生的”是通过使用您最喜欢的搜索引擎查找"unix“或类似的东西来发现的,但是简单地说:如果您用C编写了一个程序,那么您的主要函数将作为参数给出一个参数数组(通常称为" argv”);根据惯例,argv应该是程序名称,虽然事情可能变得复杂(https://utcc.utoronto.ca/~cks/space/blog/unix/Argv0IsEasy - tldr,您可以传递任何作为argv的内容),但重要的一点是程序可以查看argv并决定“如果argv是(命名的)那么做(某事)”。

你猜怎么着?如果您通过符号链接调用程序(不要做任何可怕的事情),argv就是该符号链接的名称.

作为一个简单的测试,将echo "$0($*)"写到一个shell脚本中,比如foo.sh,使其可执行(chmod +x foo.sh),创建到它的符号链接(ln -s foo.sh mysymlink),并在运行./foo.sh 1 2 3 vs ./mysymlink 1 2 3时看到不同之处。

票数 1
EN

Stack Overflow用户

发布于 2022-07-07 12:12:07

如果您运行man sudoedit,那么您将看到一个很长的手册页,我只是粘贴相关的部分:

因此,sudoedit等同于sudo -e,因此,sudosudoedit之间的差异与sudosudo -e之间的差异是完全相同的,即:

编辑一个或多个文件,而不是运行命令

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

https://stackoverflow.com/questions/72897174

复制
相关文章

相似问题

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