我有一个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
这是无法识别的选项。
我想知道是否有一个等效的命令curl
?curl
我系统上的的版本是7.37.1(x86_64-apple-darwin14.0)。
但它仅适用于更新版本的
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 install
以wget
在系统上完全安装。但是,如果您没有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] 删除。
我来说两句