我正在尝试向运行带有自签名 SSL 证书的开发站点的本地开发服务器之一发出 curl 请求。我正在从命令行使用 curl。
我看到一些博客文章提到您可以添加到证书列表或指定一个特定的(自签名)证书为有效,但是是否有一种“不验证”ssl 证书的通用方式 - 就像--no-check-certificate那个wget有吗?
我渴望知道的区别curl和wget。两者都用于获取文件和文档,但它们之间的主要区别是什么。
为什么有两个不同的程序?
我需要使用wget将文件下载到目录/var/cache/foobar/(因此,例如,如果我下载stackexchange-site-list.txt,它将被下载到/var/cache/foobar/stackexchange-site-list.txt)
这可能吗?curl也将是一个选项,但我宁愿不使用curl,因为它不是默认安装的。
是否可以节流(限制)wget或的下载速度curl?
下载时是否可以更改节流值?
我想下载并解压缩给定目录下的存档。到目前为止,这是我的做法:
wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz
tar zxf dbt2-0.37.50.3.tar.gz
mv dbt2-0.37.50.3 dbt2
Run Code Online (Sandbox Code Playgroud)
我想即时下载和解压缩存档,而无需将其tar.gz写入磁盘。我认为通过管道输出wgettotar并给出tar目标是可能的,但实际上我不知道如何将这些部分放在一起。
我想使用终端从我的谷歌驱动器下载一个文件夹?有没有办法做到这一点?我试过这个:
$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"
Run Code Online (Sandbox Code Playgroud)
但它正在下载这个文本文件:folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing. 有没有办法从终端下载谷歌驱动器文件夹?
我在使用代理的网络中。我的机器在这里和那里使用大量脚本通过 HTTP 相互访问。
我的代理是 10.1.1.1:81,所以我做了相应的设置:
export http_proxy=http://10.1.1.1:81/
Run Code Online (Sandbox Code Playgroud)我想排除要使用代理访问的我自己的范围。我尝试了任何可用的组合。
export no_proxy='10.*'
export no_proxy='10.*.*.*'
export no_proxy='10.0.0.0/8'
Run Code Online (Sandbox Code Playgroud)以上均无效!
我正在测试,wget它总是尝试查询代理,无论我想连接到什么 IP 地址。
--no-proxy选项实际上不是一个选项。我想在系统范围内设置它。我尝试使用wget和下载文件,curl但因 403 错误(禁止)而被拒绝。
我可以在同一台机器上使用网络浏览器查看文件。
我再次尝试使用通过http://www.whatsmyuseragent.com获得的浏览器的用户代理。我这样做:
wget -U 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
Run Code Online (Sandbox Code Playgroud)
和
curl -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' http://...
Run Code Online (Sandbox Code Playgroud)
但它仍然被禁止。403 可能还有什么其他原因,我可以通过什么方式更改wget和curl命令来克服它们?
(这不是关于能够获取文件 - 我知道我可以从浏览器中保存它;这是关于理解为什么命令行工具的工作方式不同)
更新
感谢所有对这个问题的出色回答。我遇到的具体问题是服务器正在检查引用者。通过将其添加到命令行,我可以使用curl和获取文件wget。
检查引用者的服务器通过 302 跳转到另一个根本不执行检查的位置,因此该站点的curl或wget工作正常。
如果有人感兴趣,这是因为我正在阅读此页面以了解嵌入式 CSS,并试图以该站点的 css 为例。我遇到麻烦的实际 URL 是这个,curl我最终得到的是
curl -L -H 'Referer: http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
Run Code Online (Sandbox Code Playgroud)
和 wget 是
wget --referer='http://css-tricks.com/forums/topic/font-face-in-base64-is-cross-browser-compatible/' http://cloud.typography.com/610186/691184/css/fonts.css
Run Code Online (Sandbox Code Playgroud)
很有意思。
我知道这个命令试图写入无处或空设备,但2>&1这里是什么意思?
wget -q -O - http://yourwebsite.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud) 请注意,我不问如何。我已经知道像pv和这样的选项rsync -P。
我想问一下为什么不cp实现进度条,至少作为标志?
wget ×10
curl ×5
download ×3
architecture ×1
bash ×1
command-line ×1
cp ×1
http-proxy ×1
networking ×1
pipe ×1
shell ×1
tar ×1
utilities ×1