如何保存我在 vim 中以错误的用户身份打开的文件?
How can I save a file I opened in vim as the wrong user?
我经常遇到这种情况。我以普通用户身份登录并使用 vim 开始编辑文件。编辑完成后,当我尝试保存文件时,我没有足够的权限来保存文件。我必须关闭文件,以 root 身份登录并重新开始编辑。以下是 vim 中的给定错误:
E45: 'readonly' option is set (add ! to override)
或者在普通 vi 中:
File is read only
有没有不用离开编辑器就可以保存的方法?
试试下面的命令
:w !sudo tee %
说明
- :w – 写
- !sudo – 调用 shell sudo 命令
- tee – write (:w) 命令的输出使用 tee 重定向
- % – 当前文件名
E45:'readonly' 选项已设置(添加 ! 以覆盖)
按 Esc,然后输入 :qa!然后按 Enter
只需输入带有 sudo
的命令,例如 sudo vi filename.txt
。
然后,点击 i
,编辑您想要更改的内容并点击 Esc。
那么:wq
:w /tmp/xyz
:q!
/tmp 应该始终对每个人都可写。
然后 mv 或 cp 文件 /tmp/xyz 作为原始文件所在的正确用户
我经常遇到这种情况。我以普通用户身份登录并使用 vim 开始编辑文件。编辑完成后,当我尝试保存文件时,我没有足够的权限来保存文件。我必须关闭文件,以 root 身份登录并重新开始编辑。以下是 vim 中的给定错误:
E45: 'readonly' option is set (add ! to override)
或者在普通 vi 中:
File is read only
有没有不用离开编辑器就可以保存的方法?
试试下面的命令
:w !sudo tee %
说明
- :w – 写
- !sudo – 调用 shell sudo 命令
- tee – write (:w) 命令的输出使用 tee 重定向
- % – 当前文件名
E45:'readonly' 选项已设置(添加 ! 以覆盖)
按 Esc,然后输入 :qa!然后按 Enter
只需输入带有 sudo
的命令,例如 sudo vi filename.txt
。
然后,点击 i
,编辑您想要更改的内容并点击 Esc。
那么:wq
:w /tmp/xyz
:q!
/tmp 应该始终对每个人都可写。 然后 mv 或 cp 文件 /tmp/xyz 作为原始文件所在的正确用户