如何使用curl --ftp-create-dirs?

时间:2014-02-24 22:06:39

标签: bash curl centos curl-commandline

背景

我一直在寻找互联网,试图找到--ftp-create-dirs的一个例子。

总的来说,我的目标是使用“--ftp-create-dirs”自动创建必要的文件夹,如果我上传文件时它们不存在。

问题

问题是我不知道正确使用--ftp-create-dirs的确切语法,有人可以帮我解决这个问题吗?

我目前的卷曲:

curl -k -T 000-0000-0000-000.png -u [username]:[pass] --ftp-create-dirs /test --ftp-ssl  ftp:[ftp server]

在上面的示例中,我尝试上传.png图像并在ftp服务器上创建/test(如果它不存在)。

3 个答案:

答案 0 :(得分:3)

通过FTP添加新目录:

curl ftp://username:password@10.10.10.10/homes/back/newdir/ --ftp-create-dirs

答案 1 :(得分:1)

只需将其放在此处以供将来参考(由于我一直犯同样的错误,就像您在代码中看到的一样):重要的是用/(斜杠)结束文件夹名称。否则,curl将创建文件,而不是文件夹。这是我使用的命令:

curl -T path/to/local_file.txt ftp://1.2.3.4/my_new_folder/ --ftp-create-dirs -u username:password

这会将local_file.txt移到FTP服务器上的my_new_folder。如果该文件夹不存在,将创建该文件夹,否则,该命令将被忽略。

如果创建文件夹有任何问题,curl将返回错误号9(请参阅https://curl.haxx.se/libcurl/c/libcurl-errors.html)。如果给定目录中已经存在与新文件夹同名的文件,则会发生这种情况:

curl: (9) Failed to MKD dir: 451

答案 2 :(得分:0)

您无需在/test之后使用--ftp-create-dirs。它只是一个类似于-k的参数(不带任何值)。