Отредактировали системный файл в Vim и только при сохранении обнаружили, что не хватает прав на запись?
Закрывать редактор, терять изменения и заново открывать файл через sudo не требуется.
Из Vim выполните:
:w !sudo tee % >/dev/null
:w ! команда передаёт текущее содержимое буфера во внешнюю команду через стандартный ввод. % подставляется Vim как имя текущего файла, а sudo tee записывает полученные данные уже с повышенными правами.
После этого перечитайте файл с диска:
:e!
Запись выполнил внешний tee, а не сам Vim, поэтому редактор может продолжать считать свой буфер изменённым.
🔥 При необходимости можно сохранить права и владельца существующего файла, поскольку tee открывает сам файл для перезаписи, а не создаёт новый через временный файл и rename.
🚪 Linux Ready | #совет
Закрывать редактор, терять изменения и заново открывать файл через sudo не требуется.
Из Vim выполните:
:w !sudo tee % >/dev/null
:w ! команда передаёт текущее содержимое буфера во внешнюю команду через стандартный ввод. % подставляется Vim как имя текущего файла, а sudo tee записывает полученные данные уже с повышенными правами.
После этого перечитайте файл с диска:
:e!
Запись выполнил внешний tee, а не сам Vim, поэтому редактор может продолжать считать свой буфер изменённым.
🔥 При необходимости можно сохранить права и владельца существующего файла, поскольку tee открывает сам файл для перезаписи, а не создаёт новый через временный файл и rename.
🚪 Linux Ready | #совет