Korzystam z polecenia, aby zamontować mój zdalny system plików za pomocą SSHFS:
$ sshfs -o uid=1000 -o gid=1000 [email protected]:/ "/home/chendy/my_mount"
Wszystko wydaje się być szczęśliwe, chyba że spróbuję otworzyć i zapisać plik w Sublime ...
Wyświetlić pliki i zmienić ich nazwy? TAK:
... Mogę przeglądać moje pliki w Eksploratorze plików i mogę z powodzeniem zmieniać nazwy plików za pomocą Eksploratora plików.
Uprawnienia / Użytkownicy / Grupy? TAK
... Podczas sprawdzania uprawnień wszystko wydaje się w porządku:
$ ls -l '/home/chendy/my_mount/home/kano/test.py'
-rwxrwxrwx 1 chendy chendy 927 Apr 15 16:24
Czy edytować plik za pomocą VIM? TAK
... mogę również otworzyć plik za pomocą VIM i zapisać go.
Edytować plik za pomocą Sublime? BŁĄD
... Ale kiedy otwieram plik w Sublime (Sublime Text 3 Build 3059), ładując go przez eksplorator plików lub używając wiersza poleceń:
$ /opt/sublime_text/sublime_text '/home/chendy/my_mount/home/kano/test.py'
Otrzymuję ten sam błąd:
Nie można zapisać ~ / my_mount / home / kano / test.py Błąd: zmiana nazwy (/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py) nie powiodła się : Operacja niedozwolona
Co się dzieje? Czy jest jakiś sposób na rozwiązanie?
touch /home/chendy/my_mount/home/kano/.subl979.tmp
.Odpowiedzi:
Podobnie jak wielu redaktorów, Sublime zapisuje plik tymczasowy, a następnie przenosi ten plik tymczasowy na miejsce. Odbywa się to w przypadku awarii systemu podczas zapisywania: gwarantuje się obecność oryginalnego pliku lub nowej wersji, nie ryzykujesz utraty pliku.
SSHFS jest zbudowany na SFTP, który (przynajmniej tak jak zaimplementowany przez OpenSSH) nie pozwala na zmianę nazwy pliku i atomowe nadpisanie celu. (Jest to wspomniane w SSHFS FAQ ).
Można obejść to ograniczenie, mówiąc SSHFS, aby zezwalał na zmianę nazwy i zastąpienie, ale czyniąc operację nieatomową (więc jest bardzo krótki czas, w którym stary plik jest usuwany, ale nowy plik nadal ma swoją nazwę tymczasową). Jest to problem w niektórych przypadkach użycia, ale nie tylko podczas edycji pliku.
Dodaj opcję
-o workaround=rename
dosshfs
wiersza poleceń.źródło
Krótka odpowiedź, ustaw to ustawienie w swojej konfiguracji:
Pozwoli to uniknąć zmiany nazwy na sshfs (SFTP), która nie jest obsługiwana.
źródło