强制wget将文件命名为URL

时间:2014-11-12 00:23:45

标签: wget

有没有办法强制Wget使用从文件名下载的url地址保存文件?

假设文件在这里找到:

fish.com/salmon/s1.jpg
fish.com/tuna/t1.jpg

我希望文件名(不是目录)为:

fish.com/salmon/s1.jpg, **not** s1.jpg
fish.com/tuna/t1.jpg, **not** t1.jpg

我知道如果只有一个下载,我可以使用-O强制使用特定的文件名,但假设我有10k个文件?我也知道wget不会覆盖文件。

如果由于' /'无法将文件保存为完整网址,我可以将它们保存为非常接近网址的内容,例如fish.com_salmon_s1.jpg?

1 个答案:

答案 0 :(得分:0)

如果你使用wget -r http://fish.com/salmon/s1.jpg http://fish.com/tuna/t1.jpg,输出将放在fish.com/salmon/s1.jpg和fish.com/tuna/t1.jpg。

所以,使用-r或--recursive开关。

或者,如果你想在保留层次结构的同时修改名称,你最好使用这样的脚本:

cat filelist | while read f do fout=`echo $f | sed -e 's/\//_/g'` wget "http://$f" -O $fout done

这将用下划线(_)

替换所有斜杠(/)

希望这会有所帮助...