Basic FTP Commands

  • ABOR — stop transferring the file.
  • CWD — change the current (active) directory.
  • DELE — delete a file.
  • LIST — display a list of server files.
  • MDTM — display the modification time of the file.
  • MKD — create a directory.
  • NLST — display a list of directory files (more concise than LIST). The list is transmitted over the data connection (port 21).
  • PASS — pass the password.
  • PASV — switch to passive mode.
  • PORT — enter the active mode and specify the ports that will be used for data transmission.
  • PWD — display the active directory.
  • QUIT — disconnect, terminate the connection.
  • RETR — Download file.
  • RMD — delete a folder on the server.
  • RNFR and RNTO — rename the file. Used as: RNFR initial_renamed RNTO file_file.
  • SIZE — return the file size.
  • STOR — upload the file to the server.
  • TYPE — set the file transfer type (binary, ASCII (text)).
  • USER — send username.
  • APPE — add to a file on the server.
  • CDUP — go to the parent directory. Similar to the team cd ..
  • HELP — display of text information for help on working with the server.
  • NOOP — do nothing (dummy command).
  • STAT — display the current status of the connection with the server.
  • STOU — upload unique files to the server. In this case, files with similar names are not transferred.
  • STRU — establish the file transfer structure.
  • SYST — display information about the system (server).
  • PBSZ — set the size of the protected buffer.
  • OPTS — a command that calls another optional command with a pre—specified parameter. More details in RFC.
  • AUTH — start the authorization and encryption operation.


The text of the response can be changed on the side of the FTP server, so it is simply impossible to specify general responses that will be applicable to all cases.

The FTP response code is indicated as the last number in the log and consists of three digits. Each digit indicates a particular state of the command, which may help in reading the response.

  1. First digit:
    • 1 — the command is accepted for execution, but not yet completed.
    • 2 — command execution completed successfully.
    • 3 — the command has been accepted and any additional command is expected.
    • 4 — the command cannot be executed at the moment.
    • 5 — impossibility of executing the given command.
  2. Second digit:
    • 0 — syntax error.
    • 1 — Announcement.
    • 2 — the message refers to either the control connection or the data connection.
    • 3 — message about user authentication and his rights.
    • 4 — not used / not defined.
    • 5 — message about the state of the file system.
  3. The third digit finally defines the state of the command.