Dk2014
V2EX  ›  问与答

Shell 脚本中如何获取 wget 下载的文件名

  •  
  •   Dk2014 · Jul 28, 2017 via Android · 4640 views
    This topic created in 3304 days ago, the information mentioned may be changed or developed.
    wget 下载地址是 api 地址,非真实文件地址
    使用 --content-disposition 可以在 wget 下载的时候自动修改成真实文件名
    已知获取文件名的方法是:
    让 wget 输出日志文件,然后通过 cat log | sed xxx 来获取
    那么有没有更简便的方法呢,baidu+google 都没有找到解决方法,可能是关键词的问题
    7 replies    2017-07-29 14:07:43 +08:00
    xfspace
        1
    xfspace  
       Jul 29, 2017 via Android
    wget -o ?
    Dk2014
        2
    Dk2014  
    OP
       Jul 29, 2017 via Android
    @xfspace 要是这么简单我就不会提问了,文件名是从服务端获取,不能本地指定
    cxbig
        3
    cxbig  
       Jul 29, 2017
    通常在 HEAD 里有文件名,你试试
    wget --content-disposition URL
    cxbig
        4
    cxbig  
       Jul 29, 2017
    我更偏向用 -O 自己指定文件名

    @xfspace 小写的-o 是指定输出 log,大写的-O 是指定输出文件名
    ETiV
        5
    ETiV  
       Jul 29, 2017 via iPhone
    先用 curl -I 输出到 stdout 再 grep awk
    oott123
        6
    oott123  
       Jul 29, 2017 via Android
    存一个临时目录,下好了 ls 一下就知道文件名了…
    Dk2014
        7
    Dk2014  
    OP
       Jul 29, 2017 via Android
    @ETiV 先 curl -sI 再 grep 可以获取到文件名,把这个文件名存到变量里面用不了,但是 echo $变量 是可以显示的,不知道什么原因
    按照 @oott123 所说的先下载,再 ls 把文件名存到变量里面倒是可以用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2744 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:24 · PVG 20:24 · LAX 05:24 · JFK 08:24
    ♥ Do have faith in what you're doing.