如何运行与“ wget”命令类似的等效“ curl”命令?

贾斯汀808

我有一个wget命令:

wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/

但它仅适用于更新版本的wget不幸的是,我有一个较旧的版本wget(基于darwin14.3.0构建的GNU Wget 1.15),无法升级。具体来说,wget --show-progress这是无法识别选项。

我想知道是否有一个等效的命令curlcurl我系统上的的版本是7.37.1(x86_64-apple-darwin14.0)。

贾科莫1968

但它仅适用于更新版本的wget不幸的是,我有一个较旧的版本wget(基于darwin14.3.0构建的GNU Wget 1.15),无法升级。具体来说,wget --show-progress这是无法识别选项。

根据我对curl工作原理和wget工作原理的了解,它们在表面上可能看起来是相同的,但在中没有等效的wget递归功能curl要执行类似的操作,curl需要一些精美的Bash脚本来包装该curl命令。

因此,当您说无法升级时wget,您的意思到底是什么?由于wget它是GNU工具,因此未随Darwin(基于BSD)一起安装,并且通常是从源代码编译的。实际上,您提供的版本详细信息显然是通过某种方式从源代码编译的,因为该版本是“基于darwin14.3.0构建的GNU Wget 1.15”。因此,如果该版本的版本wget是通过Homebrew之类的东西安装的,则很有希望,因为如果Homebrew安装在您的系统上,那么您还应该在系统上安装Xcode和相关的命令行工具/编译器。

现在知道了,您应该能够wget从源代码编译更新的版本,例如1.16.3。绕过Homebrew安装的版本,只是从您的主目录可执行该版本。您无权root/sudo无法执行此操作;这是您的操作方法。

wget从源编译

首先从官方wget来源站点获取压缩的存档

curl -O http://ftp.gnu.org/gnu/wget/wget-1.16.3.tar.gz

接下来,解压缩存档,如下所示:

tar -xzf wget-1.*.tar.gz

现在进入解压缩的目录:

cd wget-1.*

运行以下configure命令:

./configure --with-ssl=openssl

如果该configure命令以某种方式失败,则可能需要添加一个如下--with-libssl-prefix值:

./configure --with-ssl=openssl --with-libssl-prefix=/usr/lib

configure过程完成后,运行make

make

如果可以正常运行,wget则可以使用1.16.3二进制文件的新编译版本

wget从您的主目录运行最新编译的版本

现在,大多数指令都将指示您应该运行sudo make installwget在系统上完全安装。但是,如果您没有root/sudo特权-或者您不想升级wget系统范围内安装版本-您仍然可以运行wget刚刚编译二进制文件。首先,让我们wget像这样退出源目录:

cd ~/

现在,只需运行wget您像这样显式编译1.16.3二进制文件,以确认其正常工作:

~/wget-1.16.3/src/wget --version

输出应该是这样的:

GNU Wget 1.16.3 built on darwin13.4.0.

+digest +https +ipv6 -iri +large-file -nls +ntlm +opie -psl +ssl/openssl 

Wgetrc: 
    /usr/local/etc/wgetrc (system)
Compile: 
    gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc" 
    -DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -I../lib 
    -DNDEBUG 
Link: 
    gcc -DNDEBUG -liconv -lssl -lcrypto -ldl -lz ftp-opie.o openssl.o 
    http-ntlm.o ../lib/libgnu.a 

Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Originally written by Hrvoje Niksic <[email protected]>.
Please send bug reports and questions to <[email protected]>.

这意味着您现在在做生意!

wget从主目录运行命令。

因此,您现在可以wget像这样运行在您的问题中发布命令:

~/wget-1.16.3/src/wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/

还有一个小小的调整-但值得注意的是-许多wget选项具有全名和缩写词。因此--no-parent可以简化为-np使命令如下所示:

~/wget-1.16.3/src/wget -r -np -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/

使用后清理。

而且,如果您想摆脱wget刚刚编译1.16.3内容(由于您说所使用的计算机不是您自己的计算机),那么只需删除刚才使用的wget源文件,如下所示:

rm wget-1.16.3.tar.gz
rm -rf wget-1.16.3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从java运行curl命令?

来自分类Dev

如何在Ruby中运行curl命令?

来自分类Dev

我如何通过命令行界面运行curl命令

来自分类Dev

如何使用Net:HTTP运行此curl命令

来自分类Dev

等效于curl命令

来自分类Dev

如何使用Spring的RestTemplate等效于curl命令?

来自分类Dev

使用CURL模型运行API命令

来自分类Dev

从Windows控制台运行cURL命令

来自分类Dev

设置 Curl 命令以在 Zapier Webhook 中运行

来自分类Dev

如何通过ssh运行命令而不会破坏后续的curl命令的stdin?

来自分类Dev

如何运行命令?

来自分类Dev

如何从D运行命令?

来自分类Dev

如何运行JavaScript命令

来自分类Dev

如何运行命令?

来自分类Dev

ssh如何运行命令?

来自分类Dev

如何运行GIT命令

来自分类Dev

如何批量运行命令?

来自分类Dev

如何让SCHTASKS运行命令?

来自分类Dev

如何使用C#生成curl命令

来自分类Dev

如何将cURL命令导入POSTMAN

来自分类Dev

如何在ReactJS中使用curl命令

来自分类Dev

如何检查curl等命令是否正确完成?

来自分类Dev

如何使用curl命令添加PPA?

来自分类Dev

如何通过 Curl 命令设置 Elastic Search

来自分类Dev

如何使用java复制curl命令?

来自分类Dev

在 Windows 提示下使用 curl 命令如何执行多行命令?

来自分类Dev

如何使用curl_easy设置--compressed curl命令选项?

来自分类Dev

如何将curl命令转换为php curl代码?

来自分类Dev

WebRequest等效于CURL命令