关于linux:命令说明

Command Explanation

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How does the vim “write with sudo” trick work?

很多时候,我发现自己处于这样一种状态:我最终在vi编辑器中编辑文件,对此我没有权限。因此,我们必须复制其他文件中的内容,并通过更改权限将其复制回原始文件。但是我通过搜索网页找到了一个我们可以给出命令的解决方案:w!sudo tee%,不需要来回复制。有人能解释一下这是怎么回事吗?!


让我们看看…

1
:w !{cmd}

执行{cmd},将当前缓冲区送入其标准输入。

这里,{cmd}sudo tee %。这将执行tee {filename}作为root,其中{filename}是您正在编辑的文件的名称。命令将其标准输入(即vim缓冲区的内容)作为root写入文件。

妙招,顺便说一句。


您正在将文件写入命令的stdin:

1
sudo tee %

sudo会提升您的权限,tee会将stdin写入文件中(在执行命令之前,用vim替换为当前文件名)