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

Обновлено: 21.11.2024

Vim — это текстовый редактор, используемый в операционных системах Linux, который помогает создавать и обновлять различные текстовые файлы с разными расширениями. Иногда при попытке создать файлы с помощью утилиты Vim возникает ошибка: «Vim не может открыть файл для записи». Причин этой ошибки может быть несколько.

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

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

Установка Vim:

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

$ вим

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


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


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

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

$ вим

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

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

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

$ vim /usr/lib64/sas12/smtpd.conf


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

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

Сразу после того, как вы нажмете кнопку «Ввод», вы получите сообщение об ошибке: «E212: не удается открыть файл для записи», как показано на изображении ниже. Нажмите кнопку «Ввод», чтобы продолжить.

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


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

Напишите приведенную ниже команду quit и нажмите клавишу «Ввод», чтобы вернуться в оболочку терминала.

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

$ ls /usr/lib64/sas12

Исправить ошибку:

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

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

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

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

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

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

Вывод:

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

Об авторе

Акса Ясин

Я целеустремленный профессионал в области информационных технологий и обожаю писать. Я технический писатель и люблю писать для всех разновидностей Linux и Windows.

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

В качестве комментария, упомянутого в одном из ответов, вы можете получить это, если папка, в которой находится файл, была удалена или вообще не существовала. Ищите команды для изменения каталога или создания каталога из vi, в зависимости от ситуации.

17 ответов 17

Vim имеет встроенную справочную систему. Запуск :h E212 внутри Vim напечатает следующее:

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

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

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

Спасибо! В моем случае он пытался отредактировать несуществующий файл в несуществующем каталоге. Оказывается, хотя вы можете «открыть» несуществующий файл, а затем создать его, сохранив его, это не работает с несуществующим каталогом. И теперь я знаю о встроенной справочной системе Vim! :)

Спасибо! В моем случае я пытался записать на сетевой диск, и мои сетевые разрешения были частично повреждены для этого сеанса экрана. В итоге я записал во временный файл в /var и скопировал его из другого экземпляра ssh в свой домашний каталог.

:h E212 говорит: ".bashrc" E212: Не удается открыть файл для записи E433: Нет файла тегов E149: К сожалению, нет помощи для E212

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

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

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

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

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

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

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

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

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

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

Ошибка Vim не может открыть файл для записи — одна из самых распространенных ошибок, с которыми вы столкнетесь, если используете Linux и редактор vim. Независимо от того, являетесь ли вы новичком или пользователем Pro Linux, «E212» — это код ошибки, который вам не нравится. В большинстве случаев эта ошибка возникает из-за недостаточных прав, пути к каталогу или несуществующего файла, который вы пытаетесь изменить. В этом посте я расскажу вам обо всех причинах и решениях по исправлению ошибки «Vim не может открыть файл для записи».

  • /etc/apt/sources.list" E212: не удается открыть файл для записи. Не удается сохранить файл (E212)
  • Vim не может открыть файл для записи
  • Пользователь root не может открыть файл для записи
  • Ошибка редактирования vimrc
  • E212: не удается открыть файл для записи ec2

Возможные причины вышеупомянутых проблем -

  • У вас нет доступа или вы пытаетесь изменить файл, владельцем которого является пользователь root
  • Путь к файлу, который вы пытаетесь изменить, не существует (не существующий файл, несуществующий каталог)
  • Попытка записи на сетевой диск, но у вас нет доступа или частичный доступ
  • Попытка изменить файловую систему только для чтения.
  • Недостаточно места в текущем разделе или на диске.

Давайте углубимся и исправим ошибки и их причины одну за другой.

Оглавление

Установите редактор vim в Ubuntu, если он еще не установлен

Если вы получаете сообщение об ошибке: "Команда 'vim' не найдена, но может быть установлена ​​с помощью:", это означает, что у вас не установлен редактор vim (визуально улучшенный). Выполните следующую команду, чтобы установить пакет в Ubuntu.

Как исправить Vim не может открыть файл из-за ошибки записи

Решение-1. Проверьте каталог или путь к файлу, создайте его, если он не существует

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

Я пытаюсь запустить команду "vim /home/tmp/sample.txt" и получаю сообщение об ошибке "/home/tmp/sample.txt" E212: не удается открыть файл для записи при сохранении, как показано на картинке.

В этом сценарии каталог "tmp" внутри /home не существует. Поэтому, если вы попытаетесь либо создать новый, либо отредактировать существующий файл «sample.txt». Это не сработает, и вы получите ошибки.

  • Нажмите клавишу "ESC" на клавиатуре.
  • Введите «!sudo mkdir» путь к каталогу, который необходимо создать». Например, в моем случае мне нужно создать каталог «tmp» внутри /home.

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

Теперь вы можете без проблем редактировать, сохранять и закрывать файл с помощью команды ":wq".

Как узнать причину ошибки «E21: невозможно открыть файл для записи» с помощью vim

Нажмите клавишу "ESC", а затем введите ":q!" чтобы выйти из справки.

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

Если вы используете Linux, много раз в жизни. Вы бы отредактировали файл sources.list и, я уверен, столкнулись бы с ошибкой E212. Шаг за шагом следуйте решению-2, чтобы решить эту проблему.

Решение 2. Проверка разрешений пользователя или файла

Если вы пытаетесь отредактировать файл и указали правильный путь, но все равно получаете сообщение "не удается открыть файл из-за ошибки записи", то вы стали жертвой проблем с правами доступа.

Если вы вошли в систему под пользователем без полномочий root, убедитесь, что вы начинаете с команды sudo, если пытаетесь изменить системный файл или файл, принадлежащий пользователю root.

Позвольте мне показать вам пример, попробуйте отредактировать /etc/apt/sources.list пользователем без полномочий root, и вы поймете, что я пытаюсь здесь доказать.

Если вы увидите изображение ниже, файл "sources.list" принадлежит пользователю root, поэтому, если вы попытаетесь отредактировать его, используя пользователя без полномочий root, с помощью следующей команды

Вы получите сообщение об ошибке "/etc/apt/sources.list" E212: не удается открыть файл для записи.

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

Как исправить, даже если «Пользователь root не может открыть файл для записи»

Если вы являетесь пользователем root или sudo, вы также указали правильный путь к каталогу или файлу, но все равно не можете открыть файл для записи. Затем вы пытаетесь изменить файловую систему, доступную только для чтения, или место на диске заполнено, что не позволяет редактировать и сохранять файл.

Решение 3. Проверьте файловую систему только для чтения или проблему с емкостью

Используйте команду "df", чтобы проверить использование раздела или дискового пространства. Если вы видите «диск» или «раздел», доступное пространство показывает «0» байтов, кроме «/dev/loop».

Затем освободите место, удалив или удалив ненужные файлы с помощью команды rm. Это решит вашу проблему «vim не может открыть файл для записи».

Если у вас достаточно места, убедитесь, что ваша файловая система не смонтирована как доступная только для чтения. Запустите команду "mount" и проверьте свое устройство, оно должно быть смонтировано как чтение-запись (rw), а не только чтение (ro).

Например, /dev/sda5, мой корневой (/) раздел, смонтированный как rw.

Если в вашем случае он отображается как смонтированный только для чтения, перемонтируйте его как rw. Если это происходит из-за ошибок файловой системы, исправьте ошибки файловой системы и перемонтируйте его в файловую систему для чтения и записи .

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

Видеоруководство

Заключение

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

Убедитесь, что каталог /usr/lib64/sas12 уже существует:

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

Команда vim теперь должна работать должным образом.

Спасибо. На самом деле я делал vi для файла внутри папки, которой не существовало. Как: vi ~/bin/backup .

Либо файловая система смонтирована только для чтения, либо это не проблема прав root, а функция vim. Используйте другой редактор или измените права доступа к файлу (например, сделайте root владельцем файла), отредактируйте файл и измените их обратно.

вы можете получить эту ошибку, если для файла установлен атрибут "+a". команда chattr позволит только добавить, но не удалить существующий файл.

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

пример, пожалуйста, найдите файл

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

Не тот ответ, который вы ищете? Просмотрите другие вопросы с пометкой права доступа root или задайте свой вопрос.

Связанные

Горячие вопросы о сети

Чтобы подписаться на этот RSS-канал, скопируйте и вставьте этот URL-адрес в программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; вклады пользователей под лицензией cc by-sa. версия 2022.3.22.41738

Linux является зарегистрированным товарным знаком Линуса Торвальдса. UNIX является зарегистрированным товарным знаком The Open Group.
Этот сайт никоим образом не связан с Линусом Торвальдсом или The Open Group.

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