wget 用于递归下载 dxf 文件

wget 用于递归下载 dxf 文件

有一个网络服务器,其中有许多 dxf 类型文件,一次只能下载一个。我认为使用 wget 同时下载所有这些文件应该是一个好主意。不幸的是,我无法让 wget 成功完成此操作。

我的代码是:

wget -r -A.dxf www.site.com/example/download

此代码给出以下错误:

HTTP request sent, awaiting response... 403 Forbidden
Remote file does not exist -- broken link!!!

如果我指定具有确切文件名的 URL

wget -O www.site.com/example/download/filename.dxf

文件下载成功。

成功的递归 dxf 文件类型下载的代码应该是什么样子?

答案1

发生这种情况的原因可能403 forbidden是网络服务器禁止目录的目录列表(因此它不会为您生成文件列表)。如果您知道要下载的文件列表,您可以创建一个简单的文本文件,然后告诉wget下载列表。

例子:

$ cat list.txt 
file1.dxf
file2.dxf
fileA.dxf

$ wget --base http://www.site.com/example/download --input-file list.txt

将下载网址:

答案2

*鉴于您知道文件名,它们是按顺序排列的,并且网络服务器允许您在单个会话中下载*,您有机会通过 shell 扩展来实现这一点。

假设您的示例中的文件名是 file1.dxf、file2.dxf ... file5.dxf。

您可以按如下方式下载文件:

wget -r -np -nd http://www.site.com/example/download/file{1..5}.dxf

下载的文件将是:

  • 文件1.dxf
  • 文件2.dxf
  • 文件3.dxf
  • 文件4.dxf
  • 文件5.dxf

同样,如果您的文件是 filea.dxf、fileb.dxf .... filef.dxf

wget -r -np -nd http://www.site.com/example/download/file{a..f}.dxf

下载的文件将是:

  • 文件a.dxf
  • 文件b.dxf
  • 文件c.dxf
  • 归档.dxf
  • 文件e.dxf
  • 文件f.dxf

-r:递归,-np:无父级,-nd:无目录,这意味着文件已下载,但目录层次结构未下载。

相关内容