首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有一个文件名允许错误

只有一个文件名允许错误
EN

Unix & Linux用户
提问于 2012-10-11 13:09:30
回答 1查看 5.4K关注 0票数 6

有时,我忘记做sudo vim和打开我没有写权限的文件。我看到了这个职位,这真的很有帮助。

当我做:w !sudo tee %时,它要求我输入密码,然后是选项(O)K(L)OAD。这个效果很好。但当我做:wq !sudo tee %的时候,vim给了我一个错误-

代码语言:javascript
复制
E172: Only one file name allowed

为什么不让我去wq之后的提示呢?我不明白这个错误。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2012-10-11 14:26:29

因为:w:wq是两个不同的命令,具有不同的选项。

下面是带有:w选项的!{cmd}命令的说明:

代码语言:javascript
复制
:[range]w[rite] [++opt] !{cmd}
                    Execute {cmd} with [range] lines as standard input
                    (note the space in front of the '!').  {cmd} is
                    executed like with ":!{cmd}", any '!' is replaced with
                    the previous command |:!|.

请注意,:w!:w !{cmd}是两个完全不同的东西;在前者中,感叹号的意思是“强制写入”,而在后者中,它是一种管道符号,将整个文本范围传递给随后的命令(在您的示例中,tee以超级用户的身份运行,它将文件返回给vi,并将其保存到由通配符%表示的文件名)。

遗憾的是,命令:wq没有这样的选项。此命令的唯一其他可用形式是:wq! (这里的感叹号不是用于管道到另一个命令,而是用于强制退出,非常像:w!)和:w[!] {file}

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

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

复制
相关文章

相似问题

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