下载整个 WebDav 目录

下载整个 WebDav 目录

在问这个问题之前我看到如何递归复制/下载整个 webdav 目录?但它没有回答我的问题

当我运行该命令时,它会下载 robots.txt 和第一页。此页面只是名为 的文件夹的目录列表cpcat针对运行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 使用了一些缓存。必须正确刷新它。

相关内容