Filenames

根據 url 將 wget 或 curl 的輸出寫入自定義文件名

  • May 11, 2020

例如我有一個連結http://www.abc.com/123/def/ghi/jkl.mno。我想使用wget或下載它curl並獲取輸出文件的名稱為def_ghi_jkl.mno,其中部分def_ghi來自連結。

我將把這個wget命令放在一個腳本中來下載多個文件,這樣它就不能明確地給出輸出文件名。

curl具有-o,--output 選項,該選項採用單個參數,指示應寫入文件名輸出而不是stdout. 如果您在 URL 中使用{}[]包圍元素(通常用於獲取多個文件),則可以#在文件名說明符中使用後跟數字。每個此類變數都將替換為要獲取的 URL 的相應字元串。要獲取多個文件,請在{}. 如果要獲取的部分 URL 是序號,您可以使用[].

例子:

 curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'

請注意選項參數周圍的引號(除非文件名以擴展變數之一開頭,否則不需要引號)。這應該會產生輸出文件def_ghi_jkl.mno

 curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'

這應該會導致輸出文件def_ghi_jkl.mno和.def_ghi_pqr.mno``def_ghi_stu.mno

curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'

這應該會導致輸出文件def_ghi_1.mno, def_ghi_2.mno, def_ghi_3.mno.

引用自:https://unix.stackexchange.com/questions/91570