下载文件并创建与源相同的文件结构

下载文件并创建与源相同的文件结构

我有一个配置文件,其中包含我要下载的 URI 列表。例如,

  http://xyz.abc.com/Dir1/Dir3/sds.exe
  http://xyz.abc.com/Dir2/Dir4/jhjs.exe
  http://xyz.abc.com/Dir1/itr.exe

我想读取配置文件并复制每个 URL,但同时创建与主机上相同的目录结构。例如,对于配置文件中的第一行,我想在本地计算机上创建目录结构 Dir1/Dir3 (如果不存在),然后将 sds.exe 复制到 .../Dir1/Dir3/

我发现我可以使用“wget -i”下载文件中的所有 URL,但如何使用它创建相应的目录结构

答案1

man wget

-x,--force-目录:

[...]

创建目录层次结构,即使不会以其他方式创建目录层次结构。例如 wget -xhttp://fly.srk.fer.hr/robots.txt将把下载的文件保存到fly.srk.fer.hr/robots.txt。

答案2

为了获得您所要求的结构,我建议使用 -nH 以及 -x。

这将删除主机名并创建预期的目录结构。

例如

wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe

- 'Dir1/Dir3/sds.exe' saved [1234]

从手册页:

-nH
--no-host-directories
   Disable generation of host-prefixed directories.  By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/.  This option disables such behavior.

-x
--force-directories
   ...create a hierarchy of directories, even if one would not have been created otherwise...

相关内容