我大部分导航都是在终端中进行的,但在某些情况下,在 GUI 中打开目录也很不错。在 Ubuntu Linux 上,默认文件浏览器是 nautilius。我的工作流程通常是:cd 进入终端上感兴趣的文件夹,然后运行nautilus .
(或xdg-open .
,实际上执行相同的操作),这会弹出一个查找器窗口。
虽然我的大部分工作都是在本地机器上进行的,但有时我需要在远程机器上浏览文件系统。这非常适合我的工作流程。我只需 sshfs 挂载远程机器,然后假装一切都在本地。
然而,我在这里遇到了一个问题。nautilus .
在 sshfs 挂载目录中运行时速度非常慢。我意识到由于资源是非本地的,会有一些延迟,但我看到的减速远远超出了我的预期。
观察结果
为了演示这个问题,我使用 sshfs 挂载了一台距离我们约 20 英里的远程机器。当我进入挂载目录并运行:time nautilus .
我得到了以下信息:
real 1m13.918s
user 0m0.045s
sys 0m0.133s
打开远程窗口需要 1 分钟以上。请注意,当我 ping 机器时,延迟时间大约40.5 ms
为 64 字节。
此外,如果我首先打开本地 nautilus 窗口并将安装路径复制到导航栏中,它会加载得非常快。 不到 3 秒。
现在,应该注意的是,如果我使用 LAN 上的机器执行此操作并且 ping 值大约为 ,则不会出现这种缓慢现象0.618 ms
。
nautilus .
在这台附近的远程机器上运行的是:
time nautilus .
real 0m1.454s
user 0m0.008s
sys 0m0.024s
但是,与我将 sshfs 挂载路径复制到 nautilus 导航栏所需的时间相比,这仍然有点慢。后者需要不到一秒钟的时间。
为了进行比较,当我nautilius .
在本地运行时,结果几乎是即时的:
time nautilus .
real 0m0.082s
user 0m0.017s
sys 0m0.009s
概括
为了总结这些结果,这里有一个表格,列出了运行所需的时间
nautilus .
、将 sshfs 挂载路径粘贴到 nautilus 导航栏的时间以及我的本地机器、LAN 上附近的机器和 WAN 上远处机器的 ping 时间。
距离 | (‘时间’,‘鹦鹉螺’。) | ('时间','导航栏') | (‘时间’,‘ping’) |
---|---|---|---|
本地主机 | 0分0.082秒 | <1秒 | 0.050 毫秒 |
局域网 | 0分1.454秒 | <1秒 | 0.618 毫秒 |
广域网 | 1分13.918秒 | <3秒 | 40.5 毫秒 |
在我看来,跑步nautilus .
必须进行大量的往返才能按照我测量的方式进行扩展。
不幸的是,我无法为此提供 MWE,因为它需要外部硬件,但希望我的描述足够详细。
问题
我想知道是否有任何方法可以让我做得nautilus .
更快,或者编写一些脚本,以便脚本快速打开本地 nautilus 窗口,然后使用宏将路径复制到导航栏中,这样我就可以获得手动方法的速度,而无需手动复制/粘贴序列。
我曾尝试通过此线程使用 dbus:https://unix.stackexchange.com/questions/364997/open-a-directory-in-the-default-file-manager-and-select-a-file 但我的运气不太好。