Я пытаюсь редактировать sources.list с помощью редактора vi, но при сохранении файла получаю следующую ошибку:
/etc/apt/sources.list "E212 : Не удается открыть файл для записи
По какой-то причине файл, в который вы пишете, не может быть создан или перезаписан. Причина может быть в что у вас нет разрешения на запись в каталог или имя файла недействительно.
Vim имеет встроенную справочную систему. Я просто процитировал то, что он говорит : h E212
.
Возможно, вы захотите отредактировать файл как суперпользователь как sudo vim FILE
. Или, если вы не хотите оставлять существующий сеанс vim (и теперь у вас есть соответствующие права sudo), вы можете выполнить:
: w! sudo tee%>/dev/null
Что сохранит файл.
HTH
Это происходит со мной все время, я открываю корневой файл для записи:
Вместо того, чтобы терять все ваши изменения и повторно открываться с помощью sudo. См. s демонстрация того, как сохранить эти изменения:
Одноразовая демонстрация установки для создания корневого файла только для чтения для нижнего пользователя:
sudo touch temp.txtsudo chown root: root temp.txtsudo chmod 775 temp.txtwhoamiel
Сначала откройте файл как обычный пользователь :
vi temp.txt
Затем внесите некоторые изменения в файл, он предупреждает вас только для чтения. Используйте эту команду.
: w! Chmod 777%
Затем запишите файл :
: wq!
Разрешения расширяются, и файл сохраняется. Вам нужен восклицательный знак, потому что вы редактируете корневой файл как меньший пользователь.
Объяснение того, что делает эта команда:
: W означает запись файла. Взрыв означает начало интерпретации как оболочку. chmod означает изменение разрешений, 777 означает полные разрешения везде. Процент означает текущее имя файла.
Применяет изменение. И он спрашивает, хотите ли вы перезагрузить. Нажмите «O» вместо «ОК». Не перезагружайте, иначе вы потеряете свои изменения.
2
Для меня было довольно простое решение. Я пытался отредактировать/создать файл в несуществующей папке. Поскольку я уже был в папке, я пытался отредактировать/создать файл.
т.е. папка/файл pwd
и набирал
sudo vim folder/file
и, скорее всего, он искал папку в папке и не мог сохранить.
0
Или, возможно, вы находятся на монтируемой файловой системе только для чтения
2
Я ссылался на Zsolt на уровне 2, я ввожу:
: w! Sudo tee%>/dev/null
, а затем в моей ситуации я по-прежнему не может изменить файл, поэтому он предложил добавить «!». поэтому я ввожу
: q!
тогда это работает
1
у меня сработало изменение файловой системы из режима только для чтения перед запуском vim:
bash-3.2 # mount -o remount rw/
изменить пользователя на root
sodu su -
перейдите к и т. д.
vi sudoers
посмотрите для пользователя root в разделе привилегий пользователя. вы получите это как
root ALL = (ALL: ALL) ALL
сделайте такую же запись для своего имени пользователя. если ваше имя пользователя — ‘myuser’, добавьте
myuser ALL = (ALL: ALL) ALL
, это будет выглядеть как
root ALL = (ALL: ALL) ALL myuser ALL = (ALL: ALL) ALL
сохранить. измените пользователя root на своего пользователя. теперь попробуйте то же самое, где вы столкнулись с проблемой sudoers
1
Попробуйте чтобы подключиться как root, а затем отредактировать файл. Это работает для меня
Предварительно добавьте свои команды с помощью sudo
.
Например, вместо vim textfile.txt
используется sudo vim textfile.txt
. Это решит проблему.
1
Возможно, файл, к которому вы обращаетесь, имеет копию подкачки (или версию подкачки) уже в том же каталоге
Следовательно, сначала посмотрите, существует ли скрытый файл или нет.
Например, см. следующий тип файлов
.system.conf.swp
Используя команду
ls -a
А затем удалите его с помощью …
rm .system.conf.swp
Обычно я рекомендую начать использовать привилегии суперпользователя, используя …
sudo su
Я получил эту ошибку, когда использовал git rm
для файла в каталоге.
Я был в чем-то вроде ~/gitRepo/code/newFeature
В newFeature был только один файл. Я выполнил git rm
для этого файла, а затем попытался создать новый файл myNewFile с помощью vi.
Ubuntu показал, что я все еще нахожусь в каталоге newFeature, но на самом деле git rm
удалил весь каталог.
Мне пришлось выйдите из vi, перейдите на один каталог вверх и заново создайте каталог newFeature.
Я получил эту ошибку, когда путь к моему каталогу неверен, убедитесь, что ваш имена каталогов и путь верны
, потому что каталог не существует.
можно использовать :! mkdir -p/etc/apt/
для создания каталога.
затем : wq
Вам просто нужен доступ к Gemfile с корневым доступом. Перед vi
:
команда:
sudo su -
затем:
vi ~/...
Vim не может сохранить файл (E212)
Иногда, когда я создаю файл с помощью vim some/path/ newfile
, vim позволяет мне редактировать его, только чтобы пожаловаться, когда я пытаюсь сохранить свои изменения.
E212 Не могу открыть файл для записи.
Это происходит только тогда, когда новый файл находится в системном каталоге.
: w!
не отменяет это ошибка.
Как я могу записать текущий буфер, не сохраняя его во временном месте, выйти, а затем переименовать его с помощью sudo?
Вам будет предложено ввести пароль root, а затем сохраните изменения, как вы запросили:
: w! Sudo tee%
Затем введите (L) oad в командной строке, чтобы повторно загрузить файл после его сохранения. .
Добавьте эту строку в свой .vimrc
:
cmap w !! %! sudo tee>/dev/null
, а затем вы можете сделать
: w !!
, когда вы попадете в эту позицию, и он запишет файл с помощью sudo. Очень удобно.
2
Вы можете mkdir сначала, затем сохраните.
1
Если вам нужно надежное, легко запоминающееся решение и не возражайте против установки плагина, попробуйте SudoEdit.vim — редактировать файлы с помощью sudo, su или любого другого инструмента.
Если это так в Windows 7 или более поздних версиях, запустите редактор VI от имени администратора. Щелкните приложение правой кнопкой мыши и выберите «Запуск от имени администратора». Этот вопрос будет решен. Более того, ошибка связана с правами администратора.
вы можете попробовать чтобы сделать это в два этапа, сначала создайте папку some и path с помощью mkdir ~; затем вы войдете в папку path, используйте команду: sudo vim newfile. затем сохраните его
Этой проблемы можно избежать, используя «sudo» для запуска сеанса редактирования.
sudo vi имя-файла
В любом случае, вы можете также убедиться, что у вас достаточно места для хранения в разделе, где вы пытаетесь сохранить файл. Мне пришлось освободить место на моем домашнем диске, и это устранило проблему.
Убедитесь, что каталог, в котором вы пытаетесь сохранить файл, существует и у вас есть разрешение на редактирование файла.
Вы можете ввести : help message
в Vim, чтобы получить дополнительную информацию об этом и других сообщениях об ошибках. Попробуйте выполнить поиск, набрав /E212
, как только появятся документы. Вы также можете просмотреть документацию в Интернете по адресу http://vimdoc.sourceforge.net/htmldoc/message.html и найти ее с помощью CTRL-F.