Eu tenho um arquivo de texto que posso alterar usando outros aplicativos (por exemplo openoffice
). Mas quando tento alterar e salvar usando gedit
, estou recebendo erro de gedit
:
Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy
a permissão do BuildNotes.txt é a seguinte:
-rwxrwx--- 1 root vboxsf 839 2012-10-26 12:08 BuildNotes.txt
e o ID do usuário é:
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)
Qual é o problema e como posso corrigi-lo?
Respostas:
Este problema foi relatado desde 2009 (google for 'gedit virtualbox'). É horrível que ainda não haja solução. Nem os desenvolvedores do VirtualBox nem do Gedit estão dispostos a assumir a responsabilidade por isso e, em vez disso, se contentam em apontar os dedos por mais de três anos.
Você pode definir suas preferências de editor como 'Criar um backup' e salvar duas vezes. Incrivelmente doloroso, mas funciona.
Alguns outros editores não reportarão o problema. No entanto, quando testei o Kate e o nano, por exemplo, eles excluíram silenciosamente o arquivo em todos os outros salvos. Isso é ainda pior do que a situação do gedit ...
fonte
"Arquivo de texto ocupado" pode ser confuso aqui: na verdade, não se trata de arquivos de texto, mas de executáveis. Os executáveis são chamados de arquivos de texto porque ... hum, na verdade, não sei por quê .
O que a mensagem realmente significa é "esse arquivo está bloqueado por outro programa que o está usando e não pode ser modificado debaixo do nariz, para que você não possa gravá-lo". É bastante incomum ver esta mensagem por um tempo. arquivo de texto: os sistemas unix geralmente desaprovam os bloqueios obrigatórios nos arquivos e não há facilidade para os aplicativos impedirem que outros modifiquem um arquivo. (O Unix possui bloqueios de aviso: eles podem ser usados para sincronizar acessos simultâneos a um arquivo por meio de programas cooperantes.) A circunstância mais comum quando você vê “arquivo de texto ocupado” (
ETXTBUSY
) é se você tentar modificar um executável em execução: kernel bloqueia. Outra possibilidade é uma imagem de disco montada , novamente bloqueada pelo kernel.No seu caso, dada a localização do arquivo
/media/sf_Ubuntu
e a propriedade do grupovboxsf
, meu palpite é que o arquivo, que está em um sistema de arquivos de compartilhamento de arquivos do VirtualBox, está bloqueado no sistema operacional do host. Presumivelmente, o host é uma máquina Windows e você também tem o arquivo aberto em um editor. Você precisará fechar o arquivo no host antes de poder salvar no editor na VM.fonte
Verifique
lsof
se o arquivo está aberto por outro aplicativoOu use
fuser
:fonte
O problema está fundamentalmente no glib e na maneira como ele salva em um arquivo temporário, depois renomeia. O bug foi registrado como: https://bugzilla.gnome.org/show_bug.cgi?id=656225
fonte
O que foi corrigido para mim (ainda um pouco chato, mas funciona) e é aplicável ao gedit, é:
editar - preferências - editor Marque a opção "Criar cópia de segurança"
Ao salvar a partir de agora, salve o arquivo uma vez, ignore o erro, salve novamente. funciona sempre.
fonte
usando o terminal linux, tente editar o arquivo usando vi file_name e salve-o. ps Não consegui encontrar outra solução para esse problema. vi trabalhou
fonte