如何使用 Curl 将所有文件从本地上传到主机?

如何使用 Curl 将所有文件从本地上传到主机?

我已经编写了一个 shell 脚本来将特定路径中具有不同名称的所有文件从本地上传到主机,但我遇到了一些问题,文件没有上传

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

请帮我解决这个问题。

我收到以下错误

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

目前我有里面的脚本/main/folder_2,如果我更改/main/folder_1/path/*../folder_1/path/*,我得到输出,文件会按预期移动。但我想使用指定的完整路径运行脚本。

答案1

我会像这样改变你的脚本:

#!/bin/sh

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

请注意 for 循环变量file是与 一起使用的curl

更好的方法是使用find + curl已回答):

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

PS 更多信息

某些问题导致文件无法上传

将会很有帮助。

相关内容