J'ai un fichier texte que je peux modifier en utilisant d'autres applications (par exemple openoffice
). Mais quand j'essaye de le changer et de l'enregistrer en utilisant gedit
, j'obtiens une erreur de gedit
:
Could not save the file /media/sf_Ubuntu/BuildNotes.txt.
Unexpected error: Error renaming temporary file: Text file busy
l'autorisation de BuildNotes.txt est la suivante:
-rwxrwx--- 1 root vboxsf 839 2012-10-26 12:08 BuildNotes.txt
et l'ID utilisateur est:
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)
Quel est le problème et comment le résoudre?
Réponses:
Ce problème est signalé depuis 2009 (google pour 'gedit virtualbox'). C'est horrible qu'il n'y ait pas encore de solution. Ni les développeurs VirtualBox ni Gedit ne sont prêts à en assumer la responsabilité et se contentent plutôt de se pointer du doigt pendant plus de trois ans.
Vous pouvez définir vos préférences d'éditeur sur «Créer une sauvegarde», puis enregistrer deux fois. Incroyablement douloureux, mais ça marche.
Certains autres éditeurs ne signalent pas le problème. Cependant, lorsque j'ai testé Kate et nano, par exemple, ceux-ci ont simplement supprimé le fichier en silence à chaque autre sauvegarde. C'est encore pire que la situation du gedit ...
la source
«Fichier texte occupé» peut être source de confusion ici: il ne s'agit pas en fait de fichiers texte, mais d'exécutables. Les exécutables sont appelés fichiers texte parce que… hum, en fait, je ne sais pas pourquoi .
Ce que signifie réellement le message est «ce fichier est verrouillé par un autre programme qui l'utilise et ne peut pas le modifier sous son nez, donc vous ne pouvez pas y écrire.» Il est assez inhabituel de voir ce message pour un fichier texte: les systèmes Unix désapprouvent généralement les verrous obligatoires sur les fichiers, et il n'y a aucune possibilité pour les applications d'empêcher les autres de modifier un fichier. (Unix a des verrous consultatifs: ils peuvent être utilisés pour synchroniser les accès simultanés à un fichier en coopérant avec des programmes.) La circonstance la plus courante lorsque vous verrez «fichier texte occupé» (
ETXTBUSY
) est si vous essayez de modifier un exécutable en cours d'exécution: le le noyau le verrouille. Une autre possibilité est une image disque qui est montée , à nouveau verrouillée par le noyau.Dans votre cas, étant donné l'emplacement du fichier
/media/sf_Ubuntu
et la propriété du groupevboxsf
, je suppose que le fichier, qui se trouve sur un système de fichiers de partage de fichiers VirtualBox, est verrouillé dans le système d'exploitation hôte. Vraisemblablement, l'hôte est une machine Windows et le fichier est également ouvert dans un éditeur. Vous devrez fermer le fichier sur l'hôte avant de pouvoir l'enregistrer dans l'éditeur de la machine virtuelle.la source
Vérifiez
lsof
si le fichier est ouvert par une autre applicationOu utilisez
fuser
:la source
Le problème est fondamentalement avec glib et la façon dont il enregistre dans un fichier temporaire, puis renomme. Le bogue a été enregistré sous: https://bugzilla.gnome.org/show_bug.cgi?id=656225
la source
Ce qui a résolu le problème pour moi (toujours un peu ennuyeux mais qui fonctionne) et qui s'applique à gedit, c'est de:
modifier - préférences - éditeur Cochez "Créer une copie de sauvegarde"
Lors de l'enregistrement à partir de maintenant, enregistrez le fichier une fois, ignorez l'erreur, enregistrez à nouveau. fonctionne à chaque fois.
la source
en utilisant le terminal linux, essayez d'éditer le fichier en utilisant vi nom_fichier et enregistrez-le. ps je n'ai pas pu trouver une autre solution pour ce problème. vi a travaillé
la source