使用curl上传本地文件夹中的所有文件

28

我想上传一个目录中的所有文件,我知道如何使用curl上传一个文件,就像这样:

curl -T "local/xxx.suffix" -u xxx:psw "ftp://192.168.1.158/public/demon_test/xxx.suffix"

如何将当前目录下的所有文件(包括子目录)上传到FTP服务器?
2个回答

79
使用curlfind递归地上传特定目录中的所有文件:
find mydir -type f -exec curl -u xxx:psw --ftp-create-dirs -T {} ftp://192.168.1.158/public/demon_test/{} \;

3
如何增强此命令行以获取每个已上传文件的文件名? - arbyter
3
我如何不上传原始文件夹而只上传其中的内容呢? - ProblemsOfSumit
1
@ProblemsOfSumit 那么你只需要从URL中删除最后一个{}即可。 - Chuan
1
我认为这不是上传多个文件的最佳解决方案,因为curl会在每次文件上传后断开连接,然后再为下一个文件重新连接,这将严重减缓进程。 - ManSamVampire

7

不要使用curl,而是使用wput(不要与wget混淆)。


1
尽管如此,这是一个非常有用的答案。 - orzel
5
举个例子会有帮助。 - raterus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接