在问这个问题之前我看到如何递归复制/下载整个 webdav 目录?但它没有回答我的问题
当我运行该命令时,它会下载 robots.txt 和第一页。此页面只是名为 的文件夹的目录列表cp
。cat
针对运行cp
,我得到了链接到子目录的 HTML,但这些都没有下载。
这些链接是相对的,/dav/cp/folder
但为了使它们正常工作,我思考他们必须/cp/folder
如果表达得不够清楚,请原谅 - 我很乐意在必要时进行编辑。
答案1
建议在您提到的页面上使用 wget 的已接受答案并未使用 webdav,因此无法执行您要求的操作。我认为提及 davfs2 或 dadaver 的其他答案是更正确的答案,但仍然不完整。
关键是将 webdav 用作文件系统(即系统树状结构中的文件夹)。然后同步 2 个文件夹就很简单了。rsync -aHx /some/folder/. /another/folder/.
有些棘手的部分是将 webdav 资源挂载为文件系统。顺便说一句,Nautilus 并不真正与 webdav 合作。
在 16.04 系统上,启动终端应用程序并输入以下命令
sudo apt install davfs2
当询问是否应允许非特权用户挂载 WebDAV 资源时,请务必回答是。
如果 davfs 已经安装,而你不记得回答了什么,只需
sudo dpkg-reconfigure -plow davfs2
然后将所有可以使用 davfs 的用户添加到 davfs2 组。例如,将自己添加到 davfs2 组
sudo addgroup $USER davfs2
注销并重新登录。这很重要,因为组成员资格是在登录时确定的。
接下来,在您的主目录中(或其他地方)创建一个文件夹。为确保不使用没有 davfs 的文件夹,请确保权限设置为 0。使用 webdav 时,权限将被覆盖。
mkdir -m 0 $HOME/remote
接下来需要在/etc/fstab
文件中添加一行
echo "http://your.dav.server/path/to/resource $HOME/remote davfs noauto,user 0 0" |
sudo tee -a /etc/fstab >/dev/null
您现在已完成设置。任何时候您需要使用 webdav,只需输入
mount ~/remote
远程内容将出现在文件夹中~/remote
。您可以使用 nautilus、unison 或命令行工具将 davs 文件夹与本地文件夹同步。
umount ~/remote
完成后别忘了使用。davfs2 使用了一些缓存。必须正确刷新它。