Otrzymuję komunikat „Nie można zapisać _ Nieoczekiwany błąd: Błąd zmiany nazwy pliku tymczasowego: Plik tekstowy zajęty” w Gedit 2, gdy próbuję zapisać w folderze współdzielonym z Virtualbox (Debian). Szukałem i najwyraźniej jest to problem Gedit. Żadne z rozwiązań nie wydaje mi się idealne ani nie działa.
Czy można utworzyć skrypt powłoki (wtyczka narzędzi zewnętrznych), który zapisze plik gdzie indziej, a następnie skopiuje go z powrotem do powłoki? Muszę więc pobrać gdziekolwiek Gedit przechowuje plik tymczasowy (na żywo?).
A jeśli nie jest to możliwe / nie zadziała / zła praktyka, czy ktoś zna dobry sposób na obejście tego? Naprawdę lubię Gedit i wolę go używać.
Obecnie jest to mój skrypt. Mówię zewnętrznym narzędziom, aby nie zapisywały, ale przekazują dokument jako dane wejściowe (standardowe wejście)
bin=""
while read LINE; do
echo ${LINE} # do something with it here
bin="${bin}${LINE}\n"
done
echo $bin > /home/me/data2/test.txt
Działa dobrze, ale nie zachowuje zakładek. Ja tylko edytuję zwykłe pliki tekstowe. Edycja: wydaje się, że przeskakuje również ostatnią linię
źródło
Odpowiedzi:
Obecnie dostaję ten problem zarówno z gedit, jak i geany, w najnowszej wersji vm mint-lmde i fedora virtualbox na hoście Windows 7. Jednak nie ma to wpływu na Kate, kwrite, gvim / vim, Qtcreator, libre writer. Geany i gedit informują o błędzie podczas zmiany nazwy pliku tymczasowego: plik tekstowy zajęty. Używam wirtualnego pudełka 4.2.16. Przeszukując internet, podobne problemy zdają się istnieć od lat.
Znalazłem rozwiązanie dla geany.
z geany 1.23.1 na fedorze i 1.22 na mint-lmde
Edycja-> Preferencje-> Różne zaznaczenie use_atomic_file_saving
zgodnie z instrukcją powinno to być bezpieczniejsze. lub możesz odznaczyć opcję use_gio_unsafe_file_saving. Oba działa, wyjaśnienia znajdują się w instrukcji.
Na gedit niezupełnie.
W programie gedit 3.4.2 na mint-lmde znaleziono tylko jedno obejście.
Edycja-> Preferencje-> Odznacz edytor Utwórz kopię zapasową
Działa to raz, a potem przy drugim zapisie nie działa, chyba że zaczniesz bałagać się o tykaniu, zapisywaniu, odznaczaniu, zapisywaniu i będzie działać ponownie. Wygląda jak błąd. Z gedit 3.8.3 na fedorze można odznaczyć odznaczanie, ale oryginalny plik znika i pozostaje tylko kopia zapasowa, bez żadnych zmian.
źródło
„Plik tekstowy zajęty” oznacza, że jądro odmawia przeniesienia / zmiany nazwy / usunięcia pliku wykonywalnego działającego jako program. Co próbujesz zapisać?
źródło
Myślę, że problem dotyczy zasadniczo glib i sposobu, w jaki zapisuje się do pliku tymczasowego, a następnie zmienia nazwę bez zamykania pliku. Błąd został zarejestrowany jako: https://bugzilla.gnome.org/show_bug.cgi?id=656225
źródło
Rozumiem, że to stary wątek, ale gdy go znalazłem, szukając rozwiązania dokładnie tego problemu, pomyślałem, że opublikuję moje obejście, być może może pomóc innym.
W moim przypadku folder współdzielony znajdował się na serwerze NAS w mojej sieci LAN, a oprócz problemów z geanią wydajność była naprawdę zła. Moim rozwiązaniem było zdefiniowanie zmostkowanej karty sieciowej w Virtualbox Manager / Ustawienia / Sieć dla mojej maszyny wirtualnej. Następnie maszyna wirtualna uzyskała dostęp do mojej sieci LAN w taki sam sposób jak zwykły komputer. Zamiast używać folderów współdzielonych w Virtualbox, mógłbym zamontować folder jako zwykły udział sieciowy, zdefiniowany w / etc / fstab. Dlatego nie miałem zdefiniowanych folderów w Virtualbox Manager / Ustawienia / Foldery współdzielone. Problemy z geanią zniknęły, a wydajność znacznie się poprawiła.
źródło