如何使用 curl 将目录下的每个文件上传到服务器

如何使用 curl 将目录下的每个文件上传到服务器

我有一个名为的本地文件夹dist,我想将该文件夹中的文件上传到我的服务器 - 但我不想上传文件夹 - 只上传其内容

find dist -type f -exec curl -u username@my_server.com:my_password --ftp-create-dirs -T {} ftp://ftp.my_host.com/cantorah.com/ \;

这是可行的,但它会导致我的服务器上出现一个dist目录 - 而我只希望上传该目录中的文件,而不上传目录本身。

如何实现这一点?

答案1

来自 curl 手册页:

--创建目录

与 -o, --output 选项结合使用时,curl 将根据需要创建必要的本地目录层次结构。此选项将创建 -o, --output 选项中提到的目录,而不会创建其他目录。如果 --output 文件名不使用目录,或者它提到的目录已经存在,则不会创建目录。

在 UNIX 风格的文件系统上,创建的目录采用模式 0750。

要在使用 FTP 或 SFTP 时创建远程目录,请尝试 --ftp-create-dirs。

似乎 --ftp-create-dirs 参数可能会导致不必要的行为,即不仅上传文件,还创建目录。

您可以考虑运行上述命令没有--ftp-create-dirs 选项来实现所需的行为。

相关内容