根据 url 将 wget 或 curl 的输出写入自定义文件名

gvz*_*gvz 19 wget filenames curl

例如我有一个链接http://www.abc.com/123/def/ghi/jkl.mno。我想使用wgetor下载它curl并获取输出文件的名称 as def_ghi_jkl.mno,其中部分def_ghi是从链接中获取的。

我将把这个wget命令放在一个脚本中来下载多个文件,所以它不能明确给出输出文件名。

Tho*_*man 24

curl具有-o,--output 选项,该选项采用单个参数,指示应将文件名输出写入而不是stdout. 如果您在 URL中使用{}[]包围元素(通常用于获取多个文档),则可以#在文件名说明符中使用后跟数字。每个这样的变量都将被所获取的 URL 的相应字符串替换。要获取多个文件,请在{}. 如果要获取的部分 URL 是序列号,则可以使用 指定范围[]

例子:

  curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'
Run Code Online (Sandbox Code Playgroud)

请注意选项参数周围的引号(除非文件名以扩展变量之一开头,否则不需要)。这应该导致输出文件def_ghi_jkl.mno.

  curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'
Run Code Online (Sandbox Code Playgroud)

这应该导致输出文件def_ghi_jkl.mno,def_ghi_pqr.mnodef_ghi_stu.mno.

 curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'
Run Code Online (Sandbox Code Playgroud)

这应该导致输出文件def_ghi_1.mno, def_ghi_2.mno, def_ghi_3.mno.