FTP Commands and Extensions
- Created
- 2010-01-07
- Last Updated
- 2024-04-22
- Available Formats
-

XML
HTML
TXT
Registry Included Below
FTP Commands and Extensions
- Expert(s)
-
John Klensin
- Reference
- [RFC 5797]
- Note
-
Note: An IESG Standards Action is allowed to direct IANA to change the Conformance Requirements listed for any entry. The following commands are part of the base FTP specification [RFC 959] and are listed in the registry with the immutable pseudo FEAT code "base". Mandatory commands: ABOR, ACCT, ALLO, APPE, CWD, DELE, HELP, LIST, MODE, NLST, NOOP, PASS, PASV, PORT, QUIT, REIN, REST, RETR, RNFR, RNTO, SITE, STAT, STOR, STRU, TYPE, USER Optional commands: CDUP, MKD, PWD, RMD, SMNT, STOU, SYST Note: STD 3 [RFC 1123] clarified and updated the status and implementation requirements of these standard FTP commands, and it contains important complementary information for the following commands: LIST, NLST, PASV, REST, SITE, STOU The following commands were specified as experimental in an extension to an early version of the FTP specification [RFC 775] but later deprecated by [RFC 1123], because Standard FTP [RFC 959] specifies their standard successors. They are listed in the registry with the immutable pseudo FEAT code "hist". XCUP, XCWD, XMKD, XPWD, XRMD Implementation note: Deployed FTP clients still make use of the deprecated commands and most FTP servers support them as aliases for the standard commands. The following commands were specified as part of the "FOOBAR" IPng effort in [RFC 1545] and, later, [RFC 1639] and are now obsolete. They are listed in the registry with the immutable pseudo FEAT code "hist". LPRT, LPSV Legend for the registry: o cmd (Command Name) Amended versions of commands are tagged with a trailing "+" o FEAT Code Keyword returned in FEAT response line for this command/extension: - actual FEAT codes are given in upper case - placeholders (pseudo FEAT codes) are shown in lower case - "-N/A-" indicates a feature not related to one particular command See the "Extension name" clause in Section 2.2 of [RFC 5797] for details. o description Brief description of command / extension o type (Command Type) Type or "kind" of command, based on Section 4.1 of [RFC 959]: 'a' ... access control 'p' ... parameter setting 's' ... service execution Combinations like 'p/s' are possible. o conf (Conformance Requirements) Expectation for support in modern FTP implementations: 'm' ... mandatory to implement 'o' ... optional 'h' ... historic - Available Formats
-

CSV
| Range | Registration Procedures |
|---|---|
| registration marked "mandatory" ('m' in the "conf" column) | Standards Action |
| all other registrations | Specification Required |
| cmd | FEAT code | description | type | conf | References and Notes |
|---|---|---|---|---|---|
| ABOR | base | Abort | s | m | [RFC 959] |
| ACCT | base | Account | a | m | [RFC 959] |
| ADAT | secu | Authentication/Security Data | a | o | [RFC 2228] [RFC 2773] [RFC 4217] |
| ALGS | FTP64 ALG status | o | [RFC 6384] Section 11 | ||
| ALLO | base | Allocate | s | m | [RFC 959] |
| APPE | base | Append (with create) | s | m | [RFC 959] |
| AUTH | secu | Authentication/Security Mechanism | a | o | [RFC 2228] |
| AUTH+ | AUTH | Authentication/Security Mechanism | a | o | [2][RFC 2773][RFC 4217] |
| CCC | secu | Clear Command Channel | a | o | [RFC 2228] |
| CDUP | base | Change to Parent Directory | a | o | [RFC 959] |
| CONF | secu | Confidentiality Protected Command | a | o | [RFC 2228] |
| CWD | base | Change Working Directory | a | m | [RFC 959] |
| DELE | base | Delete File | s | m | [RFC 959] |
| ENC | secu | Privacy Protected Command | a | o | [RFC 2228] [RFC 2773] [RFC 4217] |
| EPRT | nat6 | Extended Port | p | o | [RFC 2428] |
| EPSV | nat6 | Extended Passive Mode | p | o | [RFC 2428] |
| FEAT | feat | Feature Negotiation | a | m [1] | [RFC 2389] |
| HELP | base | Help | s | m | [RFC 959] |
| HOST | HOST | Hostname | a | o | [RFC 7151] |
| LANG | UTF8 | Language (for Server Messages) | p | o | [RFC 2640] |
| LIST | base | List | s | m | [RFC 959][RFC 1123] |
| LPRT | hist | Data Port {FOOBAR} | p | h | [RFC 1545][RFC 1639] |
| LPSV | hist | Passive Mode {FOOBAR} | p | h | [RFC 1545][RFC 1639] |
| MDTM | MDTM | File Modification Time | s | o | [RFC 3659] |
| MIC | secu | Integrity Protected Command | a | o | [RFC 2228][RFC 2773] [RFC 4217] |
| MKD | base | Make Directory | s | o | [RFC 959] |
| MLSD | MLST | List Directory (for machine) | s | o | [RFC 3659] |
| MLST | MLST | List Single Object | s | o | [RFC 3659] |
| MODE | base | Transfer Mode | p | m | [RFC 959] |
| NLST | base | Name List | s | m | [RFC 959][RFC 1123] |
| NOOP | base | No-Op | s | m | [RFC 959] |
| OPTS | feat | Options | p | m [1] | [RFC 2389] |
| PASS | base | Password | a | m | [RFC 959] |
| PASV | base | Passive Mode | p | m | [RFC 959][RFC 1123] |
| PBSZ | secu | Protection Buffer Size | p | o | [RFC 2228] |
| PBSZ+ | PBSZ | Protection Buffer Size | p | o | [RFC 4217] |
| PORT | base | Data Port | p | m | [RFC 959] |
| PROT | secu | Data Channel Protection Level | p | o | [RFC 2228] |
| PROT+ | PROT | Data Channel Protection Level | p | o | [RFC 4217] |
| PWD | base | Print Directory | s | o | [RFC 959] |
| QUIT | base | Logout | a | m | [RFC 959] |
| REIN | base | Reinitialize | a | m | [RFC 959] |
| REST | base | Restart | s/p | m | [RFC 959][RFC 1123] |
| REST+ | REST | Restart (for STREAM mode) | s/p | m | [3][RFC 3659] |
| RETR | base | Retrieve | s | m | [RFC 959] |
| RMD | base | Remove Directory | s | o | [RFC 959] |
| RNFR | base | Rename From | s/p | m | [RFC 959] |
| RNTO | base | Rename To | s | m | [RFC 959][RFC Errata 5748] |
| SITE | base | Site Parameters | s | m | [RFC 959][RFC 1123] |
| SIZE | SIZE | File Size | s | o | [RFC 3659] |
| SMNT | base | Structure Mount | a | o | [RFC 959] |
| STAT | base | Status | s | m | [RFC 959] |
| STOR | base | Store | s | m | [RFC 959] |
| STOU | base | Store Unique | a | o | [RFC 959][RFC 1123] |
| STRU | base | File Structure | p | m | [RFC 959] |
| SYST | base | System | s | o | [RFC 959] |
| TYPE | base | Representation Type | p | m | [4][RFC 959] |
| USER | base | User Name | a | m | [RFC 959] |
| XCUP | hist | {precursor for CDUP} | s | h | [RFC 775] [RFC 1123] |
| XCWD | hist | {precursor for CWD} | s | h | [RFC 775] [RFC 1123] |
| XMKD | hist | {precursor for MKD} | s | h | [RFC 775] [RFC 1123] |
| XPWD | hist | {precursor for PWD} | s | h | [RFC 775] [RFC 1123] |
| XRMD | hist | {precursor for RMD} | s | h | [RFC 775] [RFC 1123] |
| -N/A- | TVFS | Trivial Virtual File Store | p | o | [RFC 3659] |
Footnotes
| [1] |
While an IETF Standards Action would be required to make the FEAT mechanism [RFC 2389] mandatory, implementation of that extension mechanism is clearly required in conjunction with any extension or feature that depends on it. |
| [2] |
FEAT String for [RFC 4217]: AUTH TLS FEAT String for [RFC 2773]: AUTH KEA-SKIPJACK |
| [3] |
FEAT String: REST STREAM |
| [4] |
FEAT String: TYPE {semicolon-separated list of supported types}
|