wget用原始名称重命名

时间:2019-01-18 09:22:12

标签: bash ubuntu wget

我正在使用bash脚本运行以下内容

for i in {1..50}; 
do  
    wget --content-disposition `http://example.com/getfile.php?id={$i}`
done

然后我可以获取文件

abc.mp3
abc.jpg
abc.png
...

但是我想将id扩展到

之类的文件
1-abc.mp3
2-abc.jpg
3-abc.png
...

我可以使用wget -o将文件重命名为{$i}-{$orignalName.orignalExtention}

2 个答案:

答案 0 :(得分:0)

首先,您应该使用onGotAllSlices(docDataSlices) HTTP调用来检索HEAD,例如:

  • originalName个带有-S --spider --content-disposition的选项
  • wget个带有-I -L的选项

例如:

cURL

然后只需使用-O选项,并使用刚刚拥有的originalFileName=$( wget --content-disposition -S --spider "http://example.com/getfile.php?id={$i}" |& grep "Content-Disposition" |sed -e 's/^.*filename=//' ) 和您已经拥有的originalName来构建本地文件名。

使用您的脚本,它将给出:

i

答案 1 :(得分:-1)

wget-O(大写字母O,BTW)选项中不支持模板/样式。因此,您可以执行一些技巧,例如先将文件放入临时目录,然后使用shell重命名。像这样:

for i in {1..50}; 
do  
    mkdir $i && cd $i && \
    wget --content-disposition `http://example.com/getfile.php?id={$i}` && \
    for fn in *; do mv "$fn" "../$i-$fn" && cd .. && rmdir $i; done
done

注意:未经测试。