web-dev-qa-db-ja.com

CURLコマンドラインツール-FTPサーバーからファイルを削除

私は実際にCURLを使用して、VisualStudioを使用したC++のftpサーバーでいくつかの操作を実行しようとしています。コマンドラインツールを使用して、いくつかのアップロードまたはダウンロードを行うのに問題はありません。

しかし、いくつかのファイルを削除するために、私はいくつかのエラーがあります。

入力したコマンドは次のとおりです。

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'

また、ファイルはサーバー上にあるのでわかりません。

問題が解決しました !

一重引用符が機能しなかったようです:

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

-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'
5
chaos

最初にFTPサーバーにログインし、次に「?」と入力することで、このタスクを実行しました。コマンドラインで、FTPサーバーによって認識されるコマンドのリストを取得します。私のサーバーが認識したコマンドは「削除」でした。

したがって、-Q "delete $ fileToRemove" $ serverURL

また、-X "DELE $ fileToRemove" $ serverURLを使用して動作させることもできました。ただし、ファイルが正常に削除されたにもかかわらず、この引数を使用すると、curlからrc = 19( "-X"オプションは主にHTTP | HTTPSに適用されると思うため)を取得し続けました。

他のFTPサーバーが異なるコマンドを認識するかどうかはわかりませんが、これが私にとってはうまくいきました。

2
pneumastic