命令解释

可能重复:
vim如何“用sudo写作”技巧工作?

很多时候,我发现自己在vi编辑器中编辑文件的情况下,我没有权限。 因此,我们必须复制其他文件中的内容,并通过更改权限将其复制回原始文件。 但是我已经find了一个解决scheme,通过searchnetworking,我们可以发出命令:w!sudo tee%,并且不需要来回复制。 任何人都可以解释这是如何工作的!

让我们来看看…

:w !{cmd} 

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

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

整洁的把戏,BTW。

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

 sudo tee % 

sudo升级您的权限,并将tee写入文件(在执行命令之前,%由vim替换为当前文件名)