Я использую команду для монтирования моей удаленной файловой системы с использованием SSHFS:
$ sshfs -o uid=1000 -o gid=1000 root@10.0.1.198:/ "/home/chendy/my_mount"
Все кажется счастливым, если я не попытаюсь открыть и сохранить файл с помощью Sublime ...
Просмотр и переименование файлов? ДА:
... Я могу просматривать свои файлы в проводнике и успешно переименовывать файлы с помощью проводника.
Права доступа / Пользователи / Группы? ДА
... При проверке разрешений все выглядит по порядку:
$ ls -l '/home/chendy/my_mount/home/kano/test.py'
-rwxrwxrwx 1 chendy chendy 927 Apr 15 16:24
Редактировать файл с VIM? ДА
... Я также могу открыть файл с помощью VIM и сохранить его.
Редактировать файл с помощью Sublime? ОШИБКА
... Но когда я открываю файл в Sublime (Sublime Text 3 Build 3059), загружая его через проводник или используя командную строку:
$ /opt/sublime_text/sublime_text '/home/chendy/my_mount/home/kano/test.py'
Я получаю ту же ошибку:
Невозможно сохранить ~ / my_mount / home / kano / test.py Ошибка: не удалось переименовать (/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py) : Операция не разрешена
В чем дело? Есть ли способ решить?
touch /home/chendy/my_mount/home/kano/.subl979.tmp
.Ответы:
Как и многие редакторы, Sublime сохраняет во временный файл, а затем перемещает этот временный файл на место. Это делается в случае сбоя системы во время сохранения: гарантируется, что будет присутствовать либо оригинальный файл, либо новая версия, вы не рискуете потерять файл.
SSHFS построен поверх SFTP, который (по крайней мере, как реализовано в OpenSSH) не позволяет переименовывать файл и атомарно перезаписывать цель. (Это упоминается в FAQ по SSHFS .)
Вы можете обойти это ограничение, сказав SSHFS разрешить переименование и перезапись, но сделав операцию неатомарной (поэтому очень мало времени, в течение которого старый файл удаляется, но новый файл все еще имеет свое временное имя). Это проблема для некоторых случаев использования, но не для простого редактирования файла.
Добавьте опцию
-o workaround=rename
в вашуsshfs
командную строку.источник
Короткий ответ, установите этот параметр в вашей конфигурации:
Это позволит избежать переименования через sshfs (SFTP), что не поддерживается.
источник