SSHFS 似乎在工作,但 Sublime + SSHFS 没有?

Che*_*ndy 9 sshfs rename

我使用命令,使用 SSHFS 挂载我的远程文件系统:

$ sshfs -o uid=1000 -o gid=1000 root@10.0.1.198:/ "/home/chendy/my_mount"
Run Code Online (Sandbox Code Playgroud)

一切似乎都很愉快,除非我尝试使用 Sublime 打开并保存文件...

查看和重命名文件?是的:

...我可以在文件资源管理器中查看我的文件,并且可以使用文件资源管理器成功重命名文件。

权限/用户/组?是的

...检查权限时,一切似乎都井井有条:

$ ls -l '/home/chendy/my_mount/home/kano/test.py'
-rwxrwxrwx 1 chendy chendy 927 Apr 15 16:24
Run Code Online (Sandbox Code Playgroud)

用 VIM 编辑文件?是的

... 我也可以用 VIM 打开文件并保存它。

用 Sublime 编辑文件?错误

...但是当我通过文件资源管理器加载文件或使用命令行在 Sublime (Sublime Text 3 Build 3059) 中打开文件时:

 $ /opt/sublime_text/sublime_text '/home/chendy/my_mount/home/kano/test.py'
Run Code Online (Sandbox Code Playgroud)

我犯了同样的错误:

无法保存 ~/my_mount/home/kano/test.py 错误:重命名(/home/chendy/my_mount/home/kano/.subl979.tmp, /home/chendy/my_mount/home/kano/test.py)失败: 不允许操作

这是怎么回事?有什么办法可以解决吗?

Gil*_*il' 8

像许多编辑器一样,Sublime 保存到一个临时文件,然后将该临时文件移动到位。这样做是为了防止系统在保存期间崩溃:保证原始文件或新版本都将存在,您不会有丢失文件的风险。

SSHFS 建立在 SFTP 之上,它(至少由 OpenSSH 实现)不允许重命名文件和自动覆盖目标。(这是在SSHFS 常见问题解答中提到的。)

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

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