CURL命令行工具 - 从FTP服务器删除文件

时间:2015-02-25 14:25:52

标签: curl command-line ftp delete-file

我实际上是尝试使用CURL在C ++中使用Visual Studio在ftp服务器上进行一些操作。使用commande line tools进行一些上传或下载都没有问题。

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

这是我输入的命令:

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'

此外,该文件在服务器上,所以我不明白。

3 个答案:

答案 0 :(得分:12)

问题解决了!

似乎单引号并没有这样做:

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

答案 1 :(得分:5)

您使用-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'

答案 2 :(得分:2)

我完成了这项任务,首先登录我的FTP服务器然后输入&#34;?&#34;在命令行中获取我的FTP服务器识别的命令列表。我的服务器识别的命令是&#34;删除&#34;。

所以,-Q&#34;删除$ fileToRemove&#34; $的serverURL

我还能够通过使用-X&#34; DELE $ fileToRemove&#34;来使其工作。 $的serverURL。但是,即使文件被成功删除,我仍然使用此参数从curl获得rc = 19(因为我认为#34; -X&#34;选项主要适用于HTTP | HTTPS?)。

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