Provided by: libcurl4-doc_7.58.0-2ubuntu3.24_all bug


       CURLOPT_QUOTE - (S)FTP commands to run before transfer


       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_QUOTE, struct curl_slist *cmds);


       Pass  a  pointer  to  a linked list of FTP or SFTP commands to pass to the server prior to
       your request. This will be done before any other commands are issued (even before the  CWD
       command  for  FTP).  The  linked  list should be a fully valid list of 'struct curl_slist'
       structs properly filled in with text strings. Use curl_slist_append(3) to  append  strings
       (commands)  to the list, and clear the entire list afterwards with curl_slist_free_all(3).
       Disable this operation again by setting a NULL to this option.  When  speaking  to  a  FTP
       server,  prefix  the  command  with  an  asterisk (*) to make libcurl continue even if the
       command fails as by default libcurl will stop at first failure.

       The set of valid FTP commands depends on the server (see RFC959 for a  list  of  mandatory

       The valid SFTP commands are:

              chgrp group file
                     The chgrp command sets the group ID of the file named by the file operand to
                     the group ID specified by the group operand. The group operand is a  decimal
                     integer group ID.

              chmod mode file
                     The  chmod  command  modifies  the file mode bits of the specified file. The
                     mode operand is an octal integer mode number.

              chown user file
                     The chown command sets the owner of the file named by the  file  operand  to
                     the  user  ID  specified  by the user operand. The user operand is a decimal
                     integer user ID.

              ln source_file target_file
                     The ln and symlink commands  create  a  symbolic  link  at  the  target_file
                     location pointing to the source_file location.

              mkdir directory_name
                     The mkdir command creates the directory named by the directory_name operand.

              pwd    The  pwd  command  returns  the  absolute  pathname  of  the current working

              rename source target
                     The rename command renames the file or directory named by the source operand
                     to the destination path named by the target operand.

              rm file
                     The rm command removes the file specified by the file operand.

              rmdir directory
                     The  rmdir  command  removes  the directory entry specified by the directory
                     operand, provided it is empty.

              statvfs file
                     The statvfs command returns statistics on the file system in which specified
                     file resides. (Added in 7.49.0)

              symlink source_file target_file
                     See ln.




       SFTP and FTP


       struct curl_slist *h = NULL;
       h = curl_slist_append(h, "RNFR source-name");
       h = curl_slist_append(h, "RNTO new-name");

       curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "");

         /* pass in the FTP commands to run before the transfer */
         curl_easy_setopt(curl, CURLOPT_QUOTE, headerlist);

         ret = curl_easy_perform(curl);



       SFTP support added in 7.16.3. *-prefix for SFTP added in 7.24.0


       Returns CURLE_OK