![¿Cómo puedo ejecutar el comando "curl" equivalente que funciona de manera similar a este comando "wget"?](https://rvso.com/image/1465817/%C2%BFC%C3%B3mo%20puedo%20ejecutar%20el%20comando%20%22curl%22%20equivalente%20que%20funciona%20de%20manera%20similar%20a%20este%20comando%20%22wget%22%3F.png)
tengo unwget
dominio:
wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
Pero sólo funciona en versiones más nuevas de wget
. Lamentablemente tengo una versión anterior de wget
(GNU Wget 1.15 basada en darwin14.3.0) y no puedo actualizarla. Específicamente es la wget
--show-progress
opción que no se reconoce.
Me pregunto si existe un comando equivalente paracurl
? La versión de curl
mi sistema es 7.37.1 (x86_64-apple-darwin14.0).
Respuesta1
Pero sólo funciona en versiones más nuevas de
wget
. Lamentablemente tengo una versión anterior dewget
(GNU Wget 1.15 basada en darwin14.3.0) y no puedo actualizarla. Específicamente es lawget
--show-progress
opción que no se reconoce.
Según lo que sé sobre cómo curl
funciona y cómo wget
funciona, superficialmente pueden parecer iguales, pero no existe un equivalente de wget
funcionalidad recursiva en curl
. Para hacer algo así se curl
requieren algunas secuencias de comandos Bash sofisticadas para ajustar el curl
comando.
Entonces, cuando dices que no puedes actualizar wget
, ¿a qué te refieres exactamente? Como wget
es una herramienta GNU, no se instala con Darwin (que está basado en BSD) y, a menudo, se compila desde el código fuente. De hecho, los detalles de la versión que ha proporcionado están claramente compilados desde la fuente de alguna manera, ya que la versión es "GNU Wget 1.15 construida sobre darwin14.3.0". Entonces, si esa versión wget
fue instalada por algo comocerveza casera, hay esperanza, ya que si Homebrew está en su sistema, entonces debería tener Xcode (y las herramientas/compiladores de línea de comandos relacionados) instalados en su sistema también.
Ahora que sabes eso, deberías poder compilar una versión actualizada de wget
, como la 1.16.3, desde el código fuente; omitiendo la versión instalada de Homebrew y simplemente ejecutándola desde su directorio de inicio. No tienes root
ni sudo
acceso para hacer esto; así es como puedes hacerlo.
Compilando wget
desde la fuente.
Primero, tome un archivo comprimido de un wget
sitio fuente oficial:
curl -O http://ftp.gnu.org/gnu/wget/wget-1.16.3.tar.gz
A continuación, descomprima el archivo de esta manera:
tar -xzf wget-1.*.tar.gz
Ahora vaya al directorio descomprimido:
cd wget-1.*
Ejecute este configure
comando:
./configure --with-ssl=openssl
Si de alguna manera ese configure
comando falla, es posible que deba agregar un --with-libssl-prefix
valor como este:
./configure --with-ssl=openssl --with-libssl-prefix=/usr/lib
Una vez que se complete el configure
proceso, ejecute make
:
make
Si eso se ejecuta correctamente, una versión recién compilada del wget
binario 1.16.3 estará lista para su uso.
Ejecutando la versión recién compilada wget
desde su directorio de inicio.
Ahora, en este punto, la mayoría de las instrucciones dirían que debe ejecutarlo sudo make install
para wget
instalarlo completamente en el sistema. Pero si no tiene privilegios root
/ sudo
(o no desea actualizar la wget
versión instalada en todo el sistema), aún puede ejecutar el wget
binario que acaba de compilar de esta manera. Primero, salgamos de su wget
directorio fuente de esta manera:
cd ~/
Ahora simplemente ejecute el wget
binario 1.16.3 que acaba de compilar explícitamente de esta manera para confirmar que está funcionando:
~/wget-1.16.3/src/wget --version
La salida debería ser algo como esto:
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]>.
¡Lo que significa que ahora estás en el negocio!
Ejecutando su wget
comando desde su directorio de inicio.
Ahora puedes ejecutar el wget
comando publicado en tu pregunta de esta manera:
~/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/
Y un pequeño cambio, pero que vale la pena señalar, es que muchas wget
opciones tienen nombres completos y acrónimos abreviados. Entonces --no-parent
se puede acortar para -np
que el comando se vea así:
~/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/
Limpieza posterior al uso.
Y si desea deshacerse del wget
material 1.16.3 que acaba de compilar (ya que dice que la computadora en la que está trabajando no es suya), simplemente elimine los wget
archivos fuente con los que acaba de trabajar de esta manera:
rm wget-1.16.3.tar.gz
rm -rf wget-1.16.3