Guarde el archivo en una carpeta específica con el comando curl
En un script de shell, quiero descargar un archivo desde alguna URL y guardarlo en una carpeta específica. ¿Cuál es el indicador CLI específico que debo usar para descargar archivos a una carpeta específica con el curl
comando, o de qué otra manera obtengo ese resultado?
No creo que puedas dar una ruta para curl, pero puedes CD a la ubicación, descargar y volver a CD.
cd target/path && { curl -O URL ; cd -; }
O usando subshell.
(cd target/path && curl -O URL)
Ambas formas solo se descargarán si la ruta existe. -O
mantiene el nombre del archivo remoto. Después de la descarga, volverá a la ubicación original.
Si necesita establecer el nombre del archivo explícitamente, puede usar -o
la opción pequeña:
curl -o target/path/filename URL
La --output-dir
opción está disponible desde curl 7.73.0 :
curl --create-dirs -O --output-dir /tmp/receipes https://example.com/pancakes.jpg
curl
no tiene una opción para eso (sin especificar también el nombre del archivo), pero wget
la tiene. El directorio puede ser relativo o absoluto. Además, el directorio se creará automáticamente si no existe.
wget -P relative/dir "$url"
wget -P /absolute/dir "$url"
esto funciona para mi:
curl http://centos.mirror.constant.com/8-stream/isos/aarch64/CentOS-Stream-8-aarch64-20210916-boot.iso --output ~/Downloads/centos.iso
dónde:
--output
me permite configurar la ruta y el nombre del archivo y la extensión del archivo que quiero colocar.
Utilice la redirección:
Esto funciona para colocar un curl
archivo descargado en una ruta especificada:
curl https://download.test.com/test.zip > /tmp/test.zip
Obviamente, " test.zip " es cualquier nombre arbitrario con el que desee etiquetar el archivo redirigido; podría ser el mismo nombre o uno diferente.
De hecho, prefiero la solución @oderibas, pero esto solucionará el problema hasta que su distribución admita curl versión 7.73.0 o posterior.