是否可以使用 rclone 在 vi​​fm 中安装 google 驱动器?

是否可以使用 rclone 在 vi​​fm 中安装 google 驱动器?

我可以使用安装我的谷歌驱动器rclone mount gdrive: localfolder。我还知道如何通过sshfsinside自动挂载远程文件系统vifm。但是可以使用自动rclone挂载云盘吗vifm?我尝试在中添加以下行vifmrc

filetype *.drive FUSE_MOUNT2|rclone %PARAM %DESTINATION_DIR

并创建一个文件,google.drive其中包含以下行:

mount gdrive:

当我尝试打开文件时google.drive,vifm 显示尝试安装的消息,然后永远挂在那里。

更一般地说,vifm 中有没有通用的方法来处理各种远程安装程序?

答案1

我有一个类似的问题,并偶然发现了这个悬而未决的问题。这是我的解决方案。

默认情况下,当远程安装时,该命令rclone mount保持在前台运行,将各种消息打印到标准输出。这与sshfs在前台询问凭据并完成的不同。为了vifm完成安装过程并接受新的用户输入,rclone mount需要以某种方式进行守护进程。这可以通过--daemon标志来完成,但在这种情况下,事实证明,vifm在安装过程完成之前会跳转到刚刚创建的文件夹并显示其内容。因此,您将看到一个看似空的文件夹。按CTRL-L(可能多次)可刷新文件列表并显示正确的内容。然而,这有点令人恼火。

另一种可能的方法是编写一个包装脚本,该脚本进行守护进程rclone mount并等待安装过程完成。例如,可以用inotifywait或仅用 来实现等待sleep

包装器脚本可能如下所示:

#!/usr/bin/env bash

dest=$1; shift
nohup rclone mount $* "$dest" &> /tmp/rclone_gdrive.log &
inotifywait -me open "$(dirname "$dest")" | while read line; do
    echo "$line" | grep -q "$(basename "$dest")" && break
done
# or sleep 1

(我还没有对其进行足够的测试,所以要小心)并且vifmrc您可以放置​​以下内容:

" Rclone mount
filetype *.drive
       \ {Mount google drive with rclone}
       \ FUSE_MOUNT2|<your wrapper script name> %DESTINATION_DIR %PARAM

请注意,这在此处%DESTINATION_DIR之前%PARAMS(与问题中的示例不同),因为这是提供的包装器脚本所期望的。

不幸的是,我不知道你的问题的更一般部分的答案。

相关内容