【问题标题】:get file size of a file to wget before wget-ing it?在 wget 之前获取文件的文件大小到 wget?
【发布时间】:2011-08-08 17:30:40
【问题描述】:

我想知道是否有办法提前检查我可能通过wget 下载的文件的大小?我知道使用 --spider 选项可以告诉我文件是否存在,但我也有兴趣查找该文件的大小。

【问题讨论】:

    标签: command-line wget


    【解决方案1】:

    嗯.. 对我来说 --spider 确实显示大小:

    $ wget --spider http://henning.makholm.net/
    Spider mode enabled. Check if remote file exists.
    --2011-08-08 19:39:48--  http://henning.makholm.net/
    Resolving henning.makholm.net (henning.makholm.net)... 85.81.19.235
    Connecting to henning.makholm.net (henning.makholm.net)|85.81.19.235|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 9535 (9.3K) [text/html]     <-------------------------
    Remote file exists and could contain further links,
    but recursion is disabled -- not retrieving.
    
    $ 
    

    (但请注意,并非所有 Web 服务器都会通知客户端数据的长度,除非在数据全部发送完毕后关闭连接。)

    如果您担心 wget 更改它报告长度的格式,您可以使用 wget --spider --server-response 并在输出中查找 Content-Length 标头。

    【讨论】:

    • 为了完整起见,这里仅提取大小:wget http://example.com --spider --server-response -O - 2&gt;&amp;1 | sed -ne '/Content-Length/{s/.*: //;p}'
    • 对于 FTP,在输出中查找:--&gt; SIZE filename.ext 213 ########
    • 什么是长度返回未指定:Length: unspecified [application/zip]@Henning Makholm
    • @alper:在这种情况下,另一端的服务器不会告诉您文件将持续多长时间,除非您下载所有文件。
    • aria2 怎么样?
    【解决方案2】:
    curl --head URL
    

    在输出中查找“Content-Length:”。

    感谢 Henning Makholm 的评论:

    wget --spider URL
    

    并在输出中查找“长度:”。

    【讨论】:

    • 虽然使用wget 会更令人愉悦 (-:
    • wget -S (wget --server-response) 显示相同的标头信息,但随后它继续下载文件,因此这对问题没有用处。我没有看到 wget 在不获取文件的情况下显示标题的选项。例如,“tries=0”表示无限重试。
    • 由于某种原因,wget 仅执行 HEAD 的选项拼写为 --spider
    【解决方案3】:

    我实际上是在寻找目录的大小,谷歌把我带到了这里。虽然这里没有直接的答案,但接受的答案帮助我在它之上构建了以下命令:

    wget --spider -m -np URL-to-dir 2>&1 | sed -n -e /unspecified/d -e '/^Length: /{s///;s/ .*//;p}' | paste -s -d+ | bc
    

    上面的代码在整个目录的蜘蛛模式下运行wget,最终记录该目录中每个文件的长度。然后将输出通过管道传送到sed 以提取数字序列(字节大小)。管道中的最后两个组件只是帮助将其相加得到总字节数。

    【讨论】:

      猜你喜欢
      • 2013-06-18
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2016-12-08
      • 1970-01-01
      相关资源
      最近更新 更多