【发布时间】: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