Tengo un archivo de texto que puedo cambiar usando otras aplicaciones (por ejemplo openoffice
). Pero cuando trato de cambiarlo y guardarlo usando gedit
, recibo un error de gedit
:
Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy
El permiso de BuildNotes.txt es el siguiente:
-rwxrwx--- 1 root vboxsf 839 2012-10-26 12:08 BuildNotes.txt
y la identificación de usuario es:
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)
¿Cuál es el problema y cómo puedo solucionarlo?
Respuestas:
Este problema se ha informado desde 2009 (google para 'gedit virtualbox'). Es horrible que todavía no haya una solución. Ni los desarrolladores de VirtualBox ni Gedit están dispuestos a asumir la responsabilidad, y en su lugar se contentan con señalarse el uno al otro durante más de tres años.
Puede configurar las preferencias de su editor para 'Crear una copia de seguridad' y luego guardar dos veces. Increíblemente doloroso, pero funciona.
Algunos otros editores no informarán el problema. Sin embargo, cuando probé Kate y nano, por ejemplo, esos solo eliminaron el archivo en silencio en cada otro guardado. Eso es incluso peor que la situación de gedit ...
fuente
"Archivo de texto ocupado" puede ser confuso aquí: en realidad no se trata de archivos de texto, sino de ejecutables. Los ejecutables se llaman archivos de texto porque ... hum, en realidad, no sé por qué .
Lo que el mensaje realmente significa es "este archivo está bloqueado por otro programa que lo está utilizando y no puede dejar que se modifique bajo su nariz, por lo que no puede escribir en él". Es bastante inusual ver este mensaje para un archivo de texto: los sistemas Unix generalmente desaprueban los bloqueos obligatorios en los archivos, y no hay ninguna posibilidad para que las aplicaciones impidan que otros modifiquen un archivo. (Unix tiene bloqueos de aviso: se pueden usar para sincronizar accesos concurrentes a un archivo mediante programas cooperantes). La circunstancia más común cuando verá "archivo de texto ocupado" (
ETXTBUSY
) es si intenta modificar un ejecutable que se está ejecutando: el el núcleo lo bloquea. Otra posibilidad es una imagen de disco que está montada , nuevamente bloqueada por el núcleo.En su caso, dada la ubicación del archivo
/media/sf_Ubuntu
y la propiedad del grupovboxsf
, supongo que el archivo, que está en un sistema de archivos de intercambio de archivos VirtualBox, está bloqueado en el sistema operativo host. Presumiblemente, el host es una máquina Windows y también tiene el archivo abierto en un editor allí. Deberá cerrar el archivo en el host antes de poder guardarlo en el editor en la VM.fuente
Verifique
lsof
si el archivo está abierto por otra aplicaciónO use
fuser
:fuente
El problema es fundamentalmente con glib y la forma en que se guarda en un archivo temporal, luego cambia el nombre. El error se ha registrado como: https://bugzilla.gnome.org/show_bug.cgi?id=656225
fuente
Lo que me solucionó (todavía un poco molesto pero funciona), y es aplicable a gedit, es:
editar - preferencias - editor Marque "Crear copia de seguridad"
Al guardar de ahora en adelante, guarde el archivo una vez, ignore el error, guarde nuevamente. Funciona todo el tiempo.
fuente
usando la terminal de Linux, intente editar el archivo usando vi file_name y guárdelo. PD: No pude encontrar otra solución para este problema. vi trabajado
fuente