Кажется, работает SSHFS, а Sublime + SSHFS - нет?

9

Я использую команду для монтирования моей удаленной файловой системы с использованием 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) : Операция не разрешена

В чем дело? Есть ли способ решить?

Chendy
источник
1
попробуйте использовать touch /home/chendy/my_mount/home/kano/.subl979.tmp.
Брайам

Ответы:

7

Как и многие редакторы, Sublime сохраняет во временный файл, а затем перемещает этот временный файл на место. Это делается в случае сбоя системы во время сохранения: гарантируется, что будет присутствовать либо оригинальный файл, либо новая версия, вы не рискуете потерять файл.

SSHFS построен поверх SFTP, который (по крайней мере, как реализовано в OpenSSH) не позволяет переименовывать файл и атомарно перезаписывать цель. (Это упоминается в FAQ по SSHFS .)

Вы можете обойти это ограничение, сказав SSHFS разрешить переименование и перезапись, но сделав операцию неатомарной (поэтому очень мало времени, в течение которого старый файл удаляется, но новый файл все еще имеет свое временное имя). Это проблема для некоторых случаев использования, но не для простого редактирования файла.

Добавьте опцию -o workaround=renameв вашу sshfsкомандную строку.

Жиль "ТАК - перестань быть злым"
источник
1

Короткий ответ, установите этот параметр в вашей конфигурации:

"atomic_save": false

Это позволит избежать переименования через sshfs (SFTP), что не поддерживается.

Wainer Chiari
источник