我有一个配置文件,其中包含我要下载的 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...