E212 невозможно открыть файл для записи

Обновлено: 01.07.2024

Я пытаюсь редактировать sources.list с помощью редактора vi, но при сохранении файла получаю следующую ошибку:

Vim имеет встроенную справочную систему. Я только что процитировал то, что там написано :h E212 .

Возможно, вы захотите отредактировать файл как суперпользователь как sudo vim FILE . Или, если вы не хотите покидать существующий сеанс vim (и теперь имеете надлежащие права sudo), вы можете выполнить:

Что сохранит файл.

Вам просто нужно получить доступ к Gemfile с правами root. Перед vi :

Изменить разрешение для другого пользователя для этого типа setfacl -m u: username: rw filename

Я получил эту ошибку, когда мой путь к каталогу неверен, убедитесь, что ваши имена каталогов и путь верны

Я получил эту ошибку, когда использовал git rm для файла в каталоге.

Я был в чем-то вроде

/ gitRepo / code / newFeature

В newFeature был только один файл. Я сделал git rm для этого файла, а затем попытался создать новый файл myNewFile с помощью vi.

Ubuntu показала, что я все еще нахожусь в каталоге newFeature, но на самом деле git rm удалил весь каталог.

Мне пришлось выйти из vi, перейти на один каталог вверх, а затем воссоздать каталог newFeature.

Возможно, файл, к которому вы обращаетесь, уже имеет копию подкачки (или версию подкачки) в том же каталоге.

Поэтому сначала посмотрите, существует ли скрытый файл или нет.

Например, см. Следующие типы файлов

А затем удалите его с помощью .

Обычно я рекомендую начать использовать привилегии суперпользователя, используя .

Предварительно добавьте свои команды с помощью sudo .

Например, вместо vim textfile.txt используется sudo vim textfile.txt . Это решит проблему.

Попробуйте подключиться как root, а затем отредактируйте файл. Это работает для меня

Изменить пользователя на root

Просмотреть и т. д.

Найдите пользователя root в разделе привилегий пользователя. ты получишь это как

Сделайте такую ​​же запись для своего имени пользователя. если ваше имя пользователя "myuser", добавьте

Это будет выглядеть как

Сохрани это. измените пользователя root на своего пользователя. теперь попробуйте то же самое, где вы получали проблему с sudoers

Потому что каталог не существует.

Можно использовать :!mkdir -p /etc/apt/ для создания каталога.

Для меня работал с изменением файловой системы из режима только для чтения перед запуском vim:

Я сослался на Zsolt на уровне 2, я ввел:

А затем в моей ситуации я все еще не могу изменить файл, поэтому он предложил добавить «!». так что я ввожу

Тогда это работает

Или, возможно, вы находитесь на монтируемой файловой системе только для чтения

Для меня было довольно простое решение. Я пытался отредактировать / создать файл в несуществующей папке. Поскольку я уже находился в папке, я пытался отредактировать / создать файл.

Т.е. pwd folder/file

И, скорее всего, он искал папку в папке и не мог сохранить.

Это происходит со мной все время, я открываю корневой файл для записи:

Вместо потери всех ваших изменений и повторного открытия с помощью sudo. Посмотрите эту демонстрацию того, как сохранить эти изменения:

Одноразовая демонстрация установки для создания корневого файла только для чтения для нижнего пользователя:

Сначала откройте файл как обычный пользователь:

Затем внесите некоторые изменения в файл, он предупредит вас, что он доступен только для чтения. Используйте эту команду.

Затем запишите файл:

Разрешения расширяются, и файл сохраняется. Вам нужен восклицательный знак, потому что вы редактируете корневой файл как меньший пользователь.

Объяснение того, что делает эта команда:

: W означает запись файла. Взрыв означает начало интерпретации как оболочку. chmod означает изменение разрешений, 777 означает полные разрешения везде. Процент означает текущее имя файла.

Применяет изменение. И он спрашивает, хотите ли вы перезагрузить. Нажмите «O» вместо «ОК». Не перезагружайте, иначе вы потеряете свои изменения.

Favorite

Добавить в избранное

Главное меню » Ubuntu » Ошибка устранения неполадок. Vim не может открыть файл для записи

Последнее руководство для начинающих по Vim

Предпосылки:

На вашем компьютере должен быть установлен и настроен дистрибутив Linux. В нашем случае у нас есть дистрибутив Linux Ubuntu 20.04. С другой стороны, у вас должны быть права sudo для использования системы Linux и утилиты Vim.

Установка Vim:

В самом начале вы должны убедиться, что в вашем дистрибутиве Linux установлена ​​утилита Vim. Для этого мы сначала проверим это в нашей системе. Следовательно, вы должны открыть терминал командной строки из панели действий на рабочем столе Linux. После этого выполните приведенную ниже команду Vim, чтобы получить информацию о Vim. Как показано на изображении, в нашей Ubuntu 20.04 не установлена ​​утилита Vim. Он также предлагает некоторые инструкции по установке Vim в системе. Используйте один из них для установки Vim.

Теперь наша очередь установить Vim в нашей системе Linux. Итак, для этого мы должны использовать команду sudo apt. Попробуйте выполнить команду ниже, чтобы установить его в вашей системе. Для инициализации процесса установки потребуется пароль вашей учетной записи root. Введите свой пароль sudo и нажмите кнопку «Enter», чтобы продолжить. Вы увидите, что он начнет установку и загрузку утилиты Vim вместе с другими пакетами.

Во время установки он будет приостановлен, и появится вопрос. Система предложит вопрос для подтверждения действия по установке, в котором говорится: “Do you want to continue? [Y/n] “. Если вы хотите продолжить процесс установки Vim, вам нужно нажать «y» и нажать Enter, в противном случае нажмите «n» и нажмите кнопку «Enter». Итак, мы нажали «Y» и нажали клавишу Enter, чтобы продолжить установку редактора Vim в Ubuntu 20.04. Это запустит правильную установку редактора Vim. Вам нужно подождать некоторое время, пока он не завершит свой процесс.

После установки Vim вы можете проверить информацию о нем, используя ту же команду, что и ниже.

Если ваша система Linux успешно откроет окно, показанное ниже, как показано на прикрепленном снимке, вы можете использовать редактор Vim.

Ошибка устранения неполадок. Vim не может открыть файл для записи

Получите ошибку:

Теперь мы создадим файл с помощью команды Vim в командной оболочке. Мы создадим этот файл в любом из каталогов. Итак, попробуйте следующую команду Vim, чтобы создать файл «smtpd.conf» в каталоге, указанном ниже.

Откроется окно, показанное ниже, в котором путь и имя файла указаны в нижней части нижнего заголовка. Пора записать содержимое этого файла по заданному пути.

Чтобы записать содержимое файла и выйти из редактора Vim, попробуйте следующую команду «wq» со знаком двоеточия «:», затем нажмите кнопку Enter, чтобы запустить эту команду.

Чтобы проверить причину этой ошибки, нам нужно написать еще одну инструкцию в редакторе Vim. Попробуйте выполнить следующую команду sudo в редакторе Vim, начиная с ключевого слова «:w», заканчивая ключевым словом «tee» и знаком процента. Нажмите клавишу «Enter», чтобы увидеть причину ошибки.

Для записи содержимого файла и сохранения файла по указанному пути требуется пароль вашей учетной записи sudo. Введите свой корневой пароль и нажмите кнопку «Enter». Вывод показывает, что в вашей системе Linux нет такого файла или каталога. Это означает, что мы указываем причину этой ошибки. Снова нажмите клавишу «Enter», чтобы продолжить работу с Vim. Напишите приведенную ниже команду выхода и нажмите клавишу «Enter», чтобы вернуться в оболочку терминала.

Мы узнали о причине ошибки, которая заключается в том, что указанный путь не был фактически создан. Вы также можете проверить путь в командной строке с помощью команды ls. Вывод показывает, что такой каталог не создается.

Читать Как добавить и удалить пользователей в Ubuntu 20.04

Устранить ошибку:

Во-первых, мы должны создать путь или каталог в оболочке командной строки. Чтобы создать каталог, указанный в указанном выше пути, мы должны использовать команду mkdir вместе с флагом «-p». Если вы используете команду mkdir без ключевого слова «sudo», это может быть вызвано исключением «Permission denied».

Давайте попробуем эту команду с ключевым словом «sudo», и вы увидите, что она работает нормально.

Снова напишите команду Vim, а затем укажите путь к файлу, чтобы проверить изменения. Откроется редактор Vim.

Когда вы напишете приведенную ниже команду sudo, для продолжения может потребоваться пароль вашей учетной записи sudo. Вы можете увидеть, что после ввода пароля и нажатия кнопки «Enter» будет выдано предупреждение. Вы должны нажать клавишу «L», а затем кнопку «Enter», чтобы загрузить этот файл в указанную папку.

Он загрузит файл и предоставит ему права только для чтения. Нажмите клавишу Enter.

Теперь, когда вы вводите команду «wq», она будет работать нормально.

Заключение:

Мы сделали решение ошибки: “Vim can’t open file for writing” в мгновение ока. Надеюсь, вы сможете решить эту ошибку с удобством.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Я пытаюсь редактировать sources.list с помощью редактора vi, но при этом сохраняя следующую ошибку:

ОТВЕТЫ

Ответ 1

Vim имеет встроенную справочную систему. Я только что процитировал, что он говорит :h E212 .

Возможно, вы захотите отредактировать файл как суперпользователь как sudo vim FILE . Или, если вы не хотите выходить из существующего сеанса vim (и теперь имеете надлежащие права sudo), вы можете выполнить:

Который сохранит файл.

Ответ 2

Это происходит со мной все время, я открываю корневой файл для записи:

Вместо того, чтобы потерять все ваши изменения и снова открыть с помощью sudo. Просмотрите эту демонстрацию о том, как сохранить эти изменения:

Однажды программа Setup для создания корневого файла только для чтения для более низкого пользователя:

Сначала откройте файл как обычный пользователь:

Затем внесите некоторые изменения в файл, он предупреждает вас только для чтения. Используйте эту команду.

Затем напишите файл:

Разрешения расширяются, и файл сохраняется. Вам нужен восклицательный знак, потому что вы редактируете корневой файл как меньший пользователь.

Объяснение того, что делает эта команда:

Файл w означает запись файла. Бэнг означает начало интерпретации как оболочки. chmod означает разрешение на изменение, 777 означает полные разрешения везде. Процент означает текущее имя файла.

Он применяет изменения. И он спрашивает, хотите ли вы повторно загрузить. Нажмите "O" для "Ok". Не перезагружайтесь или вы потеряете свои изменения.

Ответ 3

Или, возможно, вы находитесь на смонтированном только fs

Ответ 4

Для меня было довольно простое решение. Я пытался отредактировать/создать файл в папке, которая не существует. Поскольку я уже был в папке, я пытался изменить/создать файл.

т.е. pwd folder/file

и, скорее, он искал папку в папке и не смог ее сохранить.

Ответ 5

Я ссылался на Zsolt на уровне 2, я ввожу:

а затем в моей ситуации я до сих пор не могу изменить файл, поэтому он предложил добавить "!". поэтому я ввожу

Ответ 6

для меня работала с изменением файловой системы с Read-Only перед запуском vim:

Ответ 7

Попробуйте подключиться как root, а затем отредактируйте файл. Это работает для меня

Ответ 8

Возможно, файл, к которому вы обращаетесь, имеет своп-копию (или своп-версию), уже находящуюся в том же каталоге

Поэтому сначала посмотрите, существует или нет скрытый файл.

Например, см. Следующий тип файлов

И затем удалите его, используя.

Обычно я рекомендую начать использовать привилегии суперпользователя, используя.

Ответ 9

Я получил эту ошибку, когда использовал git rm в файле в каталоге.

Я был в чем-то вроде

В newFeature был только один файл. Я сделал git rm в этом файле, а затем попытался создать новый файл myNewFile, используя vi.

Ubuntu показал мне, что все еще находится в каталоге newFeature, но на самом деле git rm удалил весь каталог.

Мне пришлось выйти из vi, перейти к одному каталогу, а затем воссоздать каталог newFeature.

Ответ 10

Вам просто нужно получить доступ к Gemfile с правами доступа root. Перед vi :

Я пытаюсь редактировать sources.list, используя редактор vi, но получаю следующую ошибку при сохранении файла:

Я получил это, когда каталог, в который я пытался записать файл, превысил свой максимум. использование диска

Vim имеет встроенную справочную систему. Я только что процитировал, что он говорит :h E212 .

Вы можете редактировать файл как суперпользователь как sudo vim FILE . Или, если вы не хотите выходить из существующего сеанса vim (и теперь имеете надлежащие права sudo), вы можете выполнить:

Который сохранит файл.

Спасибо! В моем случае он пытался редактировать несуществующий файл в несуществующей директории. Оказывается, хотя вы можете «открыть» несуществующий файл и затем создать его, сохранив его, это не работает с несуществующим каталогом. И теперь я знаю о встроенной справочной системе Vim! :) Спасибо! В моем случае я пытался записать на сетевой диск, и мои сетевые разрешения частично сбоили для этого сеанса экрана. Я закончил записывать во временный файл в / var и копировать его из другого экземпляра ssh в мой домашний каталог. : h E212 говорит: ".bashrc" E212: Не удается открыть файл для записи E433: Нет файла тегов E149: Извините, нет помощи для E212

Это происходит со мной все время, я открываю корневой файл для записи:

Вместо того, чтобы потерять все свои изменения и заново открыть с помощью sudo. Посмотрите демонстрацию того, как сохранить эти изменения:

Однократная демонстрация установки для создания файла, доступного только для чтения, для пользователя с правами root:

Сначала откройте файл как обычный пользователь:

Затем внесите некоторые изменения в файл, он предупредит вас только для чтения. Используйте эту команду.

Затем напишите файл:

Разрешения расширены, и файл сохранен. Вам нужен восклицательный знак, потому что вы редактируете корневой файл как младший пользователь.

Объяснение того, что делает эта команда:

: W означает запись файла. Взрыв означает начать интерпретировать как оболочку. chmod означает изменение прав доступа, 777 означает полные права доступа везде. Процент означает текущее имя файла.

Это применяет изменение. И это спросить, если вы хотите перезагрузить. Нажмите «О» для «ОК». Не перезагружайте, иначе вы потеряете свои изменения.

/etc/apt/sources.list "E212: Невозможно открыть файл для записи.

Я пытаюсь редактировать sources.list с помощью редактора vi, но при сохранении файла получаю следующую ошибку:

В Vim есть встроенная справочная система. Я просто процитировал то, что он говорит :h E212 .

Вы можете отредактировать файл как суперпользователь как sudo vim FILE . Или, если вы не хотите покидать существующий сеанс vim (и теперь имеете надлежащие права sudo), вы можете выполнить:

Что сохранит файл.

Со мной такое случается все время, я открываю корневой файл для записи:

Вместо потери всех ваших изменений и повторного открытия с помощью sudo. Посмотрите эту демонстрацию того, как сохранить эти изменения:

Одноразовая демонстрация установки для создания корневого файла только для чтения для нижнего пользователя:

Сначала откройте файл как обычный пользователь:

Затем внесите некоторые изменения в файл, он предупредит вас, что он доступен только для чтения. Используйте эту команду.

Затем напишите файл:

Разрешения расширяются, и файл сохраняется. Вам нужен восклицательный знак, потому что вы редактируете корневой файл как меньший пользователь.

Объяснение того, что делает эта команда:

: W означает запись файла. Взрыв означает начало интерпретации как оболочку. chmod означает изменение разрешений, 777 означает полные разрешения везде. Процент означает текущее имя файла.

  • 1 chmod: невозможно изменить режим файла на vimrc: операция не разрешена
  • когда используешь :w !chmod 777 % я получил chmod: changing permissions of ‘filename’: Operation not permitted .

Для меня было довольно простое решение. Я пытался редактировать / создавать файл в папке, которой не было. Поскольку я уже был в папке, я пытался редактировать / создавать файл в формате.

т.е. pwd folder/file

и, скорее всего, он искал папку в папке и не мог сохранить.

Или, возможно, вы подключены только для чтения.

Я ссылался на Zsolt на уровне 2, я ввел:

тогда это работает

  • 3 разве это не просто закрывает файл, а не сохраняет его?

для меня работал с изменением файловой системы из режима только для чтения перед запуском vim:

изменить пользователя на root

просмотреть и т. д.

найдите пользователя root в разделе привилегий пользователя. ты получишь это как

сделайте такую ​​же запись для своего имени пользователя. если ваше имя пользователя "myuser", добавьте

это будет выглядеть как

сохрани это. измените пользователя root на своего пользователя. теперь попробуйте то же самое, где вы получали проблему с sudoers

  • Это плохая практика. root следует использовать в крайнем случае.

Попробуйте подключиться как root, а затем отредактируйте файл. Это работает для меня

Предварительно добавьте свои команды с помощью sudo .

Например, вместо vim textfile.txt , используемый sudo vim textfile.txt . Это решит проблему.

Возможно, файл, к которому вы обращаетесь, уже имеет копию подкачки (или версию подкачки) в том же каталоге.

Поэтому сначала посмотрите, существует ли скрытый файл или нет.

Например, см. Следующие типы файлов

А затем удалите его с помощью .

Обычно я рекомендую начать использовать привилегии суперпользователя, используя .

Я получил эту ошибку, когда использовал git rm над файлом в каталоге.

Я был в чем-то вроде

/ gitRepo / code / newFeature

В newFeature был только один файл. Я сделал git rm в этом файле затем попытался создать новый файл myNewFile с помощью vi.

Ubuntu показал, что я все еще нахожусь в каталоге newFeature, но на самом деле git rm удалил весь каталог.

Мне пришлось выйти из vi, перейти на один каталог вверх, а затем заново создать каталог newFeature.

Я получил эту ошибку, когда мой путь к каталогу неверен, убедитесь, что ваши имена каталогов и путь верны

Читайте также: