如果您在 vim 中打开一个您无权写入的文件,然后决定需要更改它,您可以在不退出 vim 的情况下编写更改,这样做:w !sudo tee %
我不明白这是如何工作的。你能剖析一下吗?
我理解这:w
部分,它将当前缓冲区写入磁盘,假设已经有一个与之关联的文件名,对吗?
我也理解!
哪个执行sudo tee
命令并%
代表当前缓冲区内容对吗?
但仍然不明白这是如何工作的。
Ste*_*ris 36
该结构的:w !cmd
意思是“写入通过命令管道传输的当前缓冲区”。例如:w !cat
,您可以这样做,它会将缓冲区通过cat
.
现在%
是与缓冲区关联的文件名
因此:w !sudo tee %
将通过管道传输缓冲区的内容sudo tee FILENAME
。这有效地将缓冲区的内容写入文件。
%
表示当前缓冲区的文件名,而不是其内容。
so:w !sudo tee %
意味着将当前缓冲区通过管道传输到sudo tee [currentfilename]
.
tee
以 root 身份运行,因此具有写入权限以将其标准输入保存到文件中。
归档时间: |
|
查看次数: |
11878 次 |
最近记录: |