Ubuntu下用ocamlfuse挂载Google Drive后无法通过Emacs打开文件
Ubuntu下用ocamlfuse挂载Google Drive后无法通过Emacs打开文件
我之前也碰到过一模一样的情况!你遇到的这个问题,大概率是Emacs的工作目录权限逻辑和ocamlfuse挂载的文件系统不兼容导致的,毕竟这类FUSE挂载的远程文件系统在权限处理上和本地磁盘确实有点区别。
先复盘下你的场景:你在Ubuntu上用Google Drive的ocamlfuse挂载了云端硬盘,安装和挂载流程都没问题,能正常导航到/home/my-account/googledrive/myfiles目录,用vi这类编辑器可以顺利打开编辑文件,但切换到emacs就弹出权限错误:
cannot open path of the current working directory: Permission denied
给你几个亲测有效的解决办法,你可以挨个试试:
- 先切换本地工作目录再打开文件:先cd到你本地有完整权限的目录(比如主目录
~),然后用绝对路径调用Emacs打开目标文件,比如执行:emacs /home/my-account/googledrive/myfiles/your-target-file.txt。这样Emacs的工作目录是本地目录,就不会触发挂载目录的权限校验问题了。 - 调整挂载目录的权限参数:先查看挂载目录的权限状态,执行
ls -ld /home/my-account/googledrive确认你的用户账号是否拥有读、写、执行权限。如果权限不对,重新挂载时可以指定权限参数,比如:google-drive-ocamlfuse -o allow_other,uid=1000,gid=1000 /home/my-account/googledrive(其中uid和gid可以用id命令查看你自己用户的对应ID)。 - 试试终端版Emacs(emacs-nox):有时候图形界面的Emacs会继承桌面环境的权限上下文,可能和挂载目录冲突。试试在终端里执行
emacs-nox /home/my-account/googledrive/myfiles/your-file.txt,看看能不能正常打开。 - 排查Emacs配置问题:有些自定义的Emacs插件或者配置会自动尝试访问工作目录的隐藏文件(比如
.emacs.d相关的缓存),而挂载的Google Drive目录里没有这些文件,或者权限不足。可以临时禁用自定义配置,执行emacs -q /home/my-account/googledrive/myfiles/your-file.txt测试,如果能正常打开,就说明是你的配置里某个插件或设置导致的,再逐步排查调整。
这些方法基本能解决这类问题,你可以先从第一个方法试起,最简单也最容易见效!
备注:内容来源于stack exchange,提问作者user1551817
相关产品推荐
相关产品推荐

