У меня есть текстовый файл, который я могу изменить, используя другие приложения (например openoffice
). Но когда я пытаюсь изменить и сохранить его с помощью gedit
, я получаю сообщение об ошибке gedit
:
Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy
разрешение BuildNotes.txt выглядит следующим образом:
-rwxrwx--- 1 root vboxsf 839 2012-10-26 12:08 BuildNotes.txt
и идентификатор пользователя:
m@m-Linux:/media/sf_Ubuntu$ id
uid=1000(m) gid=1000(m) groups=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),122(sambashare),1000(m),1001(vboxsf)
В чем проблема и как я могу это исправить?
Ответы:
Эта проблема была зарегистрирована с 2009 года (Google для «Gedit Virtualbox»). Ужасно, что это еще не исправлено. Ни VirtualBox, ни разработчики Gedit не хотят брать на себя ответственность за это, и вместо этого довольствуются указывать друг на друга более трех лет.
Вы можете установить в настройках редактора значение «Создать резервную копию», а затем сохранить дважды. Невероятно больно, но это работает.
Некоторые другие редакторы не сообщат о проблеме. Однако, когда я тестировал, например, Kate и nano, они просто молча удаляли файл при каждом другом сохранении. Это даже хуже, чем ситуация с Gedit ...
источник
«Текстовый файл занят» может сбивать с толку: речь идет не о текстовых файлах, а о исполняемых файлах. Исполняемые файлы называются текстовыми файлами, потому что… на самом деле, я не знаю почему .
На самом деле это сообщение означает «этот файл заблокирован другой программой, которая использует его и не может позволить ему изменить его под носом, поэтому вы не можете писать в него». Довольно необычно видеть это сообщение для Текстовый файл: Unix-системы, как правило, не одобряют обязательную блокировку файлов, и приложения не могут блокировать изменение файла другими пользователями (Unix имеет консультативные блокировки: их можно использовать для синхронизации одновременного доступа к файлу с помощью взаимодействующих программ.) Наиболее распространенное обстоятельство, когда вы видите «текстовый файл занят» (
ETXTBUSY
), - это если вы пытаетесь изменить исполняемый файл: ядро блокирует это. Другая возможность - это смонтированный образ диска , снова заблокированный ядром.В вашем случае, учитывая местоположение файла
/media/sf_Ubuntu
и права собственности на группуvboxsf
, я предполагаю, что файл, находящийся в файловой системе общего доступа к файлам VirtualBox, заблокирован в операционной системе хоста. Предположительно, хост является Windows-машиной, и у вас также есть файл, открытый в редакторе. Вам нужно закрыть файл на хосте, прежде чем вы сможете сохранить его в редакторе на виртуальной машине.источник
Проверьте,
lsof
открыт ли файл другим приложениемИли используйте
fuser
:источник
Проблема в основном с glib и тем, как он сохраняется во временный файл, а затем переименовывается. Ошибка была записана как: https://bugzilla.gnome.org/show_bug.cgi?id=656225
источник
Что исправило это для меня (все еще немного раздражает, но работает), и применимо к gedit:
редактировать - настройки - редактор Поставьте галочку на "Создать резервную копию"
При сохранении отныне сохраните файл один раз, проигнорируйте ошибку, сохраните снова. работает каждый раз.
источник
используя терминал linux, попробуйте отредактировать файл, используя vi file_name, и сохраните его. PS Я не мог найти другое решение для этой проблемы. Ви работал
источник