¿Cómo cargar todos los archivos del local al host usando Curl?

¿Cómo cargar todos los archivos del local al host usando Curl?

He escrito un script de shell para cargar todos los archivos con nombres diferentes en la ruta específica desde el local al host, pero tengo algún problema y los archivos no se cargan.

#!/bin/sh
for file in /main/folder1/path/*
do
curl -u Pass:"Uname" -T  $file http://www.example.com/folder/$file
done

Por favor ayúdame a solucionar esto.

Recibo el siguiente error

<html>
<head>
<title> 500 Internal Server Error </title>
</head>
<body>
<h1> 
Internal Server Error 
</h1> 
</body>
</html>

Actualmente tengo el script dentro /main/folder_2, si cambio /main/folder_1/path/*a ../folder_1/path/*, obtengo el resultado, los archivos se mueven como se esperaba. pero quiero ejecutar el script con la ruta completa especificada.

Respuesta1

Cambiaría tu script así:

#!/bin/sh

for file in /folder/path/*
do
  curl -u username:password -T ${file} http://www.example.com/folder/${file}
done

Tenga en cuenta que la variable de bucle for filese utiliza con curl.

Una mejor manera es cargar usando find + curl(como erarespondido en SO):

find /folder/path/ -name '*' -type f -exec curl -u USERNAME:PASSWORD -T {} http://www.example.com/folder/ \;

PD Más información sobre

algún problema impide que se carguen los archivos

sería de ayuda.

información relacionada