【问题标题】:Forcing wget to name files as URLs强制 wget 将文件命名为 URL
【发布时间】:2014-11-12 11:33:48
【问题描述】:

有没有办法强制 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 不会覆盖文件。

如果由于“/”而无法将文件保存为完整的 url,我可以将它们保存为相当接近 url 的内容,例如fish.com_salmon_s1.jpg?

【问题讨论】:

    标签: wget


    【解决方案1】:

    如果你使用 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

    这会将所有斜线 (/) 替换为下划线 (_)

    希望这会有所帮助...

    【讨论】:

    • 嗨,达里尔,感谢您的回答!但是,我认为您误解了这个问题。我已将其编辑为尽可能清晰。请原谅我的无耻。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多