CURL命令行工具-从FTP服务器删除文件 我尝试使用 Curl 在VisualStudio中对C++中的FTP服务器进行一些操作。我可以用命令行工具进行一些上传或下载

CURL命令行工具-从FTP服务器删除文件 我尝试使用 Curl 在VisualStudio中对C++中的FTP服务器进行一些操作。我可以用命令行工具进行一些上传或下载,curl,command-line,ftp,delete-file,Curl,Command Line,Ftp,Delete File,但是对于删除一些文件,我有一些错误 以下是我键入的命令: curl -v -u username:pwd ftp://host/FileTodelete.xml -Q '-DELE FileTodelete.xml' 答案是: * Adding handle: conn: 0x1ca5260 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x

但是对于删除一些文件,我有一些错误

以下是我键入的命令:

curl -v -u username:pwd ftp://host/FileTodelete.xml -Q '-DELE FileTodelete.xml'
答案是:

* Adding handle: conn: 0x1ca5260
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1ca5260) send_pipe: 1, recv_pipe: 0
* About to connect() to host port 21 (
*   Trying ......
* Connected to host (...) po
< 220-FileZilla Server version 0.9.49 beta
< 220 Bienvenue sur le serveur FTP de HandTrainer
> USER username
< 331 Password required for username
> PASS pwd
< 230 Logged on
> PWD
< 257 "/" is current directory.
* Entry path is '/'
> '-DELE
* ftp_perform ends with SECONDARY: 0
< 500 Syntax error, command unrecognized.
* QUOT command failed with 500
* Closing connection 0
curl: (21) QUOT command failed with 500
* Rebuilt URL to: FileTodelete.xml'/
* Adding handle: conn: 0x1ca5260
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 1 (0x1ca5260) send_pipe: 1, recv_pipe: 0
* Could not resolve host: FileTodelete.xml'
* Closing connection 1
curl: (6) Could not resolve host: FileTodelete.xml'
*添加句柄:conn:0x1ca5260
*正在添加句柄:发送:0
*正在添加句柄:recv:0
*卷曲度加把手尺寸线:长度:1
*-Conn 0(0x1ca5260)发送管道:1,接收管道:0
*即将连接()到主机端口21(
*努力。。。。。。
*已连接到主机(…)po
<220 FileZilla服务器版本0.9.49 beta
<220手工培训师服务区酒店
>用户用户名
用户名需要<331密码
>通过pwd
<230已登录
>PWD
<257“/”是当前目录。
*输入路径为“/”
>'-DELE
*ftp_执行结束与辅助:0
<500语法错误,无法识别命令。
*QUOTE命令失败,错误为500
*正在关闭连接0
curl:(21)QUOT命令失败,错误为500
*重新生成的URL:FileTodelete.xml'/
*正在添加句柄:连接:0x1ca5260
*正在添加句柄:发送:0
*正在添加句柄:recv:0
*卷曲度加把手尺寸线:长度:1
*-接头1(0x1ca5260)发送管道:1,接收管道:0
*无法解析主机:FileTodelete.xml'
*关闭连接1
curl:(6)无法解析主机:FileTodelete.xml'

此外,该文件位于服务器上,因此我无法理解。

您使用
-Q
放置命令,但
-DELE file
不是常见的ftp命令。请尝试以下命令之一:

curl -v -u username:pwd ftp://host/FileTodelete.xml -Q 'DELE FileTodelete.xml'
curl -v -u username:pwd ftp://host/FileTodelete.xml -Q 'DELETE FileTodelete.xml'
curl -v -u username:pwd ftp://host/FileTodelete.xml -Q 'rm FileTodelete.xml'

问题已解决!删除前的破折号不应存在:

curl -v -u username:pwd ftp://host/FileTodelete.xml -Q "DELE FileTodelete.xml"

我首先登录到FTP服务器,然后在命令行中键入“?”以获得FTP服务器识别的命令列表,从而完成了此任务。我的服务器识别的命令是“删除”

所以,-Q“删除$fileToRemove”$serverURL

我还可以通过使用-X“DELE$fileToRemove”$serverURL使其工作。但是,当我使用此参数时,我一直从curl获得rc=19(因为我认为“-X”选项主要适用于HTTP | HTTPS?),即使文件已成功删除


不确定其他FTP服务器是否识别不同的命令,但这对我有效。

这不起作用:/我尝试了这三个命令,但得到了与以前相同的错误消息。我发现了不起作用的地方:该用户权限问题!我将在今晚发布您提交的命令。即使在授予该用户权限后,我也会发布该命令仍然存在相同的错误:500语法错误,无法识别命令。从curl手册页:若要使命令在成功传输后执行,请在命令前面加上破折号“-”。若要使命令在libcurl更改工作目录后发送,请在传输命令之前,在命令前面加上“+”。