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}