Bash

批量下載一系列文件並為其添加前綴

  • May 20, 2019

所以我有一個具有特定順序的可下載連結列表,但文件名混亂

example.com/ddk.zip
example.com/453.zip
example.com/hth.zip

所以我想在下載它們時根據連結列表的順序自動為它們添加前綴,所以它們看起來像這樣:

001_ddk.zip
002_453.zip
003_hth.zip

有沒有辦法在 Bash 中實現這一點?

這是一段腳本

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin

prefix=1

while read link; do
 filename="$(printf "%03d" $prefix)_${link##*/}"
 echo "wget $link -O $filename"
 prefix=$((prefix+1))
done < <(cat /tmp/list)

顯然刪除echowget 命令上的 以真正執行它

結果:

$ bash script.sh
wget example.com/ddk.zip -O 001_ddk.zip
wget example.com/453.zip -O 002_453.zip
wget example.com/hth.zip -O 003_hth.zip
wget example.com/ddhth.zip -O 004_ddhth.zip
wget example.com/hggth.zip -O 005_hggth.zip
wget example.com/jhkhth.zip -O 006_jhkhth.zip

是的,您需要編輯連結列表並在之前添加 http:// 或 https://

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