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) не вдалося : Експлуатація не дозволена

Що відбувається? Чи є спосіб вирішити?


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

Відповіді:


7

Як і багато редакторів, Sublime зберігає у тимчасовому файлі, потім переміщує цей тимчасовий файл на місце. Це робиться таким чином, якщо система під час збереження виходить з ладу: гарантується, що буде присутній або оригінальний файл, або нова версія, ви не ризикуєте втратити файл.

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

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

Додайте параметр -o workaround=renameу свій sshfsкомандний рядок.


1

Коротка відповідь, встановіть це налаштування у своєму конфігурації:

"atomic_save": false

Це дозволить уникнути перейменування на sshfs (SFTP), яке не підтримується.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.