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
Braiam 2014年

Answers:


7

像许多编辑器一样,Sublime保存到一个临时文件,然后将该临时文件移动到位。这样做是为了防止在保存过程中系统崩溃:可以保证原始文件或新版本都将存在,您不必担心会丢失文件。

SSHFS建立在SFTP(至少由OpenSSH实现)之上,SFTP不允许重命名文件和原子覆盖目标。(在SSHFS FAQ中提到了这一点。)

您可以通过告诉SSHFS允许重命名和覆盖,但使操作非原子操作来解决此限制(因此,在很短的时间内可以删除旧文件,但新文件仍具有其临时名称)。对于某些用例,这是一个问题,但不仅仅是编辑文件时。

将选项添加-o workaround=renamesshfs命令行。


1

简短的答案,请在您的配置中设置以下设置:

"atomic_save": false

它将避免不支持通过sshfs(SFTP)重命名。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.