我可以使用安装我的谷歌驱动器rclone mount gdrive: localfolder
。我还知道如何通过sshfs
inside自动挂载远程文件系统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
(与问题中的示例不同),因为这是提供的包装器脚本所期望的。
不幸的是,我不知道你的问题的更一般部分的答案。