SSHFS挂载路径下Nautilus CLI命令启动极慢但GUI操作快速的优化方案咨询
SSHFS挂载路径下Nautilus CLI命令启动极慢但GUI操作快速的优化方案咨询
我之前碰到过完全一样的问题,折腾了一阵终于找到几个可行的解决办法,分享给你:
一、先搞懂为什么nautilus .这么慢
核心原因是:通过CLI启动Nautilus并指定远程目录时,它会默认触发一堆预加载操作——比如递归扫描目录下的所有文件、生成缩略图、读取文件元数据等,这些操作在SSHFS挂载的远程路径下会产生大量网络往返请求,跨WAN时每一次请求的延迟都会被放大,最终导致启动慢到离谱;而手动在已有Nautilus窗口粘贴路径,只会加载当前目录的基础内容,不会触发这些冗余的预加载逻辑。
二、解决方案1:修改Nautilus设置,禁用远程目录的预加载
直接从根源减少远程目录的不必要网络请求:
- 打开Nautilus的「偏好设置」,切换到「预览」标签页,把「远程文件」的预览选项改成「从不」,或者仅保留「文件信息」(不要勾选生成缩略图)
- 也可以用命令行快速修改配置(适合批量操作或服务器环境):
# 全局禁用缩略图生成 gsettings set org.gnome.nautilus.preferences show-thumbnails 'never' # 或者仅限制远程文件的缩略图大小(设为0就是禁用) gsettings set org.gnome.nautilus.preferences remote-thumbnail-limit 0
修改后再试nautilus .,速度应该会有明显提升,不过可能还是不如手动粘贴路径快。
三、解决方案2:写脚本模拟手动粘贴路径的操作
既然手动操作快,那我们就用脚本自动模拟这个流程,比你之前试的dbus方法更直观可靠。需要先安装xdotool(Ubuntu下直接sudo apt install xdotool),然后创建一个脚本:
#!/bin/bash # 获取当前终端所在的目录 CURRENT_DIR=$(pwd) # 检查是否有Nautilus窗口在运行,没有就先打开一个本地目录(启动快) if ! pgrep -x "nautilus" > /dev/null; then nautilus ~ & sleep 0.5 # 给窗口一点启动时间 fi # 激活Nautilus窗口,聚焦地址栏,输入当前路径并回车 xdotool search --class nautilus windowactivate --sync xdotool key Ctrl+l # 按下Ctrl+l聚焦地址栏 xdotool type "$CURRENT_DIR" # 输入当前目录路径 xdotool key Return # 回车跳转
保存为open-nautilus-fast.sh,然后给它加执行权限:
chmod +x open-nautilus-fast.sh
之后在SSHFS挂载的目录下运行这个脚本,就能获得和手动粘贴路径一样的速度了。
四、额外小技巧
如果不想每次都敲脚本路径,可以把它加到~/.bashrc或者~/.zshrc里作为别名:
alias fast-nautilus='~/path/to/open-nautilus-fast.sh'
之后直接输入fast-nautilus就能快速打开当前目录了。
备注:内容来源于stack exchange,提问作者Erotemic
相关产品推荐
相关产品推荐

