【问题标题】:How do I silence the HEAD of a curl request while using the silent flag?如何在使用静默标志时使 curl 请求的 HEAD 静默?
【发布时间】:2015-09-09 07:58:42
【问题描述】:

当我运行 curl 命令并将数据定向到文件时,我按预期取回了站点的内容。

$ curl "www.site.com" > file.txt
$ head file.txt
Top of site
...

但是,这个命令显示了一个我不想要的进度条:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  328k  100  328k    0     0   467k      0 --:--:-- --:--:-- --:--:--  467k

我可以通过传递-silent 标志来使进度条静音,但是我的文件输出将附加头部内容:

$ curl -silient "www.site.com" > file.txt
$ head file.txt
HTTP/1.1 200 OK
Content-Security-Policy: default-src 'none'
X-XSS-Protection: 1; mode=block
X-Frame-Options: deny
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
ETag: "29647904ffa6a6b36cf3483b325138cab9447a13"
Content-Type: text/plain; charset=utf-8
Cache-Control: max-age=300
Content-Length: 335978  

如何使进度条静音并避免将头部内容发送到文件?

根据提供的标志,我似乎只能获得其中一个。

这是我现在正在做的解决问题的方法,但我不确定将进度条和可能的任何错误通过管道传输到 /dev/null 是否是个好主意。

curl "www.site.com" > file.txt 2> /dev/null

我认为这不是一个好主意的原因是它可能会干扰我关心的实际错误。如果这就是它的用途,我想使用silent 标志。

我也尝试过使用-o 输出到文件的所有相同命令,但没有成功。

【问题讨论】:

  • -silient 是一个错字,导致您的问题。使用--silent-s。作为一般规则,长选项使用 -- 前缀而不是 - 前缀。所以-silient-slniet/etc 是一样的。并且正在打开-i 选项。
  • @EtanReisner 我不会拼写。这是正确的,它解决了我的问题。

标签: bash shell curl command-line pipe


【解决方案1】:

您需要使用带有两个破折号的--silent。您的“选项”-silient(原文如此!)启用 -s-i-l-e-n-t 选项。

-i 包含 HTTP 标头。

【讨论】:

    【解决方案2】:

    试试这个:

    curl --silent "www.site.com" > file.txt
    

    如果您愿意,可以使用简写 -s

    【讨论】:

      【解决方案3】:

      同时使用-q-s 就可以了。

      【讨论】:

        猜你喜欢
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 2016-10-13
        • 1970-01-01
        相关资源
        最近更新 更多