Я пытаюсь редактировать sources.list с помощью редактора vi, но при этом сохраняя следующую ошибку:
/etc/apt/sources.list" E212: Can't open file for writing
Я пытаюсь редактировать sources.list с помощью редактора vi, но при этом сохраняя следующую ошибку:
/etc/apt/sources.list" E212: Can't open file for writing
For some reason the file you are writing to cannot be created or overwritten.
The reason could be that you do not have permission to write in the directory
or the file name is not valid.
Vim имеет встроенную справочную систему. Я только что процитировал, что он говорит :h E212
.
Возможно, вы захотите отредактировать файл как суперпользователь как sudo vim FILE
. Или, если вы не хотите выходить из существующего сеанса vim (и теперь имеете надлежащие права sudo), вы можете выполнить:
:w !sudo tee % > /dev/null
Который сохранит файл.
НТН
Вместо того, чтобы потерять все ваши изменения и снова открыть с помощью sudo. Просмотрите эту демонстрацию о том, как сохранить эти изменения:
Однажды программа Setup для создания корневого файла только для чтения для более низкого пользователя:
sudo touch temp.txt
sudo chown root:root temp.txt
sudo chmod 775 temp.txt
whoami
el
Сначала откройте файл как обычный пользователь:
vi temp.txt
Затем внесите некоторые изменения в файл, он предупреждает вас только для чтения. Используйте эту команду.
:w !chmod 777 %
Затем напишите файл:
:wq!
Разрешения расширяются, и файл сохраняется. Вам нужен восклицательный знак, потому что вы редактируете корневой файл как меньший пользователь.
Объяснение того, что делает эта команда:
Файл w означает запись файла. Бэнг означает начало интерпретации как оболочки. chmod означает разрешение на изменение, 777 означает полные разрешения везде. Процент означает текущее имя файла.
Он применяет изменения. И он спрашивает, хотите ли вы повторно загрузить. Нажмите "O" для "Ok". Не перезагружайтесь или вы потеряете свои изменения.
Или, возможно, вы находитесь на смонтированном только fs
Для меня было довольно простое решение. Я пытался отредактировать/создать файл в папке, которая не существует. Поскольку я уже был в папке, я пытался изменить/создать файл.
т.е. pwd folder/file
и печатал
sudo vim folder/file
и, скорее, он искал папку в папке и не смог ее сохранить.
Я ссылался на Zsolt на уровне 2, я ввожу:
:w !sudo tee % > /dev/null
а затем в моей ситуации я до сих пор не могу изменить файл, поэтому он предложил добавить "!". поэтому я ввожу
:q!
то он работает
для меня работала с изменением файловой системы с Read-Only перед запуском vim:
bash-3.2# mount -o remount rw /
Попробуйте подключиться как root, а затем отредактируйте файл. Это работает для меня
Возможно, файл, к которому вы обращаетесь, имеет своп-копию (или своп-версию), уже находящуюся в том же каталоге
Поэтому сначала посмотрите, существует или нет скрытый файл.
Например, см. Следующий тип файлов
.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.
Вам просто нужно получить доступ к Gemfile с правами доступа root. Перед vi
:
команда:
sudo su -
тогда:
vi ~/...