eu tenho umwget
comando:
wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
Mas só funciona em versões mais recentes do wget
. Infelizmente tenho uma versão mais antiga wget
(GNU Wget 1.15 construída em darwin14.3.0) e não consigo atualizá-la. Especificamente, é a wget
--show-progress
opção que não é reconhecida.
Gostaria de saber se existe um comando equivalente paracurl
? A versão do curl
meu sistema é 7.37.1 (x86_64-apple-darwin14.0).
Responder1
Mas só funciona em versões mais recentes do
wget
. Infelizmente tenho uma versão mais antigawget
(GNU Wget 1.15 construída em darwin14.3.0) e não consigo atualizá-la. Especificamente, é awget
--show-progress
opção que não é reconhecida.
Com base no que sei sobre como curl
funciona e como wget
funciona, eles podem parecer superficialmente iguais, mas não há equivalente à wget
funcionalidade recursiva no curl
. Para fazer algo assim, curl
é necessário algum script Bash sofisticado para envolver o curl
comando.
Então, quando você diz que não pode atualizar wget
, o que exatamente você quer dizer? Por wget
ser uma ferramenta GNU, ela não é instalada com o Darwin (que é baseado em BSD) e geralmente é compilada a partir do código-fonte. Na verdade, os detalhes da versão que você forneceu são claramente compilados a partir do código-fonte, de alguma forma, já que a versão é “GNU Wget 1.15 construída em darwin14.3.0”. Então, se essa versão wget
foi instalada por algo comoCerveja caseira, há esperança, pois se o Homebrew estiver em seu sistema, você também deverá ter o Xcode - e ferramentas/compiladores de linha de comando relacionados - instalados em seu sistema.
Agora sabendo disso, você deverá ser capaz de compilar uma versão atualizada do wget
—como 1.16.3—a partir do código-fonte; ignorando a versão instalada do Homebrew e apenas executá-la em seu diretório inicial. Você não tem root
/ sudo
acesso para fazer isso; veja como você pode fazer isso.
Compilando wget
da fonte.
Primeiro pegue um arquivo compactado de um wget
site de origem oficial:
curl -O http://ftp.gnu.org/gnu/wget/wget-1.16.3.tar.gz
Em seguida, descompacte o arquivo assim:
tar -xzf wget-1.*.tar.gz
Agora vá para o diretório descompactado:
cd wget-1.*
Execute este configure
comando:
./configure --with-ssl=openssl
Se de alguma forma esse configure
comando falhar, talvez seja necessário adicionar um --with-libssl-prefix
valor como este:
./configure --with-ssl=openssl --with-libssl-prefix=/usr/lib
Assim que o configure
processo for concluído, execute make
:
make
Se funcionar corretamente, uma versão recém-compilada do wget
binário 1.16.3 estará pronta para você usar.
Executando a versão recém-compilada wget
em seu diretório inicial.
Agora, neste ponto, a maioria das instruções diria que você deve executar sudo make install
para wget
instalar totalmente o sistema. Mas se você não tiver privilégios root
/ sudo
- ou não quiser atualizar a wget
versão que está instalada em todo o sistema - você ainda pode executar o wget
binário que acabou de compilar desta forma. Primeiro, vamos sair do seu wget
diretório de origem assim:
cd ~/
Agora basta executar o wget
binário 1.16.3 que você compilou explicitamente assim para confirmar que está funcionando:
~/wget-1.16.3/src/wget --version
A saída deve ser algo assim:
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]>.
O que significa que agora você está no mercado!
Executando seu wget
comando em seu diretório inicial.
Agora você pode executar o wget
comando postado na sua pergunta assim:
~/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/
E um pequeno ajuste - mas digno de nota - é que muitas wget
opções têm nomes completos e siglas abreviadas. Portanto, --no-parent
pode ser abreviado para -np
fazer com que o comando fique assim:
~/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/
Limpeza pós-uso.
E se você quiser se livrar do wget
material 1.16.3 que acabou de compilar - já que você diz que o computador em que está trabalhando não é seu - basta excluir os wget
arquivos de origem com os quais você acabou de trabalhar, assim:
rm wget-1.16.3.tar.gz
rm -rf wget-1.16.3