如何递归下载整个网络目录?

15 linux bash wget

我有一个 web 目录,其中包含许多文件夹和许多包含文件的子文件夹。

我需要使用 wget 或 bash 下载所有内容。

AJ.*_*AJ. 19

尝试: wget -r看看是否有效。


小智 15

$ wget \
 --recursive \
 --no-clobber \
 --page-requisites \
 --html-extension \
 --convert-links \
 --restrict-file-names=windows \
 --domains website.org \
 --no-parent \
     www.website.org/tutorials/html/
Run Code Online (Sandbox Code Playgroud)

此命令下载网站 www.website.org/tutorials/html/。

选项是:

  • --recursive:下载整个网站。
  • --domains website.org:不要访问 website.org 之外的链接。
  • --no-parent:不要访问 tutorials/html/ 目录之外的链接。
  • --page-requisites:获取组成页面的所有元素(图像、CSS 等)。
  • --html-extension:以 .html 扩展名保存文件。
  • --convert-links:转换链接,以便它们在本地、离线状态下工作。
  • --restrict-file-names=windows:修改文件名,以便它们也能在 Windows 中工作。
  • --no-clobber:不要覆盖任何现有文件(用于下载中断和恢复的情况)。

链接到源

或者尝试询问 Ubuntu 的解决方案。


小智 10

最好的办法是:

wget -m <url>
Run Code Online (Sandbox Code Playgroud)

这是 wget "mirror" 的缩写:

  -m,  --mirror             shortcut for -N -r -l inf --no-remove-listing.
Run Code Online (Sandbox Code Playgroud)


小智 6

wget --recursive(或其他)对我不起作用(我在 CentOS 上)。lftp做到了:

 lftp -c "open http://your.server/path/to/directory/; mirror"
Run Code Online (Sandbox Code Playgroud)