FTP Commands and Extensions

Created
2010-01-07
Last Updated
2014-03-14
Available Formats

XML

HTML

Plain text

Registry included below

FTP Commands and Extensions

Reference
[RFC5797]
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
    [RFC0959] 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 [RFC1123] 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 [RFC0775] but later
    deprecated by RFC 1123 [RFC1123], because Standard FTP [RFC0959]
    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 [RFC1545] and, later, RFC 1639 [RFC1639] 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
            [RFC5797] for details.

        o  description

            Brief description of command / extension

        o  type (Command Type)

            Type or "kind" of command, based on Section 4.1 of [RFC959]:

             '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 [RFC959]
ACCT base Account a m [RFC959]
ADAT secu Authentication/Security Data a o [RFC2228] [RFC2773] [RFC4217]
ALGS FTP64 ALG status o [RFC6384] Section 11
ALLO base Allocate s m [RFC959]
APPE base Append (with create) s m [RFC959]
AUTH secu Authentication/Security Mechanism a o [RFC2228]
AUTH+ AUTH Authentication/Security Mechanism a o [2][RFC2773][RFC4217]
CCC secu Clear Command Channel a o [RFC2228]
CDUP base Change to Parent Directory a o [RFC959]
CONF secu Confidentiality Protected Command a o [RFC2228]
CWD base Change Working Directory a m [RFC959]
DELE base Delete File s m [RFC959]
ENC secu Privacy Protected Command a o [RFC2228] [RFC2773] [RFC4217]
EPRT nat6 Extended Port p o [RFC2428]
EPSV nat6 Extended Passive Mode p o [RFC2428]
FEAT feat Feature Negotiation a m [1] [RFC2389]
HELP base Help s m [RFC959]
HOST HOST Hostname a o [RFC7151]
LANG UTF8 Language (for Server Messages) p o [RFC2640]
LIST base List s m [RFC959][RFC1123]
LPRT hist Data Port {FOOBAR} p h [RFC1545][RFC1639]
LPSV hist Passive Mode {FOOBAR} p h [RFC1545][RFC1639]
MDTM MDTM File Modification Time s o [RFC3659]
MIC secu Integrity Protected Command a o [RFC2228][RFC2773] [RFC4217]
MKD base Make Directory s o [RFC959]
MLSD MLST List Directory (for machine) s o [RFC3659]
MLST MLST List Single Object s o [RFC3659]
MODE base Transfer Mode p m [RFC959]
NLST base Name List s m [RFC959][RFC1123]
NOOP base No-Op s m [RFC959]
OPTS feat Options p m [1] [RFC2389]
PASS base Password a m [RFC959]
PASV base Passive Mode p m [RFC959][RFC1123]
PBSZ secu Protection Buffer Size p o [RFC2228]
PBSZ+ PBSZ Protection Buffer Size p o [RFC4217]
PORT base Data Port p m [RFC959]
PROT secu Data Channel Protection Level p o [RFC2228]
PROT+ PROT Data Channel Protection Level p o [RFC4217]
PWD base Print Directory s o [RFC959]
QUIT base Logout a m [RFC959]
REIN base Reinitialize a m [RFC959]
REST base Restart s/p m [RFC959][RFC1123]
REST+ REST Restart (for STREAM mode) s/p m [3][RFC3659]
RETR base Retrieve s m [RFC959]
RMD base Remove Directory s o [RFC959]
RNFR base Rename From s/p m [RFC959]
RNTO base Rename From s m [RFC959]
SITE base Site Parameters s m [RFC959][RFC1123]
SIZE SIZE File Size s o [RFC3659]
SMNT base Structure Mount a o [RFC959]
STAT base Status s m [RFC959]
STOR base Store s m [RFC959]
STOU base Store Unique a o [RFC959][RFC1123]
STRU base File Structure p m [RFC959]
SYST base System s o [RFC959]
TYPE base Representation Type p m [4][RFC959]
USER base User Name a m [RFC959]
XCUP hist {precursor for CDUP} s h [RFC775] [RFC1123]
XCWD hist {precursor for CWD} s h [RFC775] [RFC1123]
XMKD hist {precursor for MKD} s h [RFC775] [RFC1123]
XPWD hist {precursor for PWD} s h [RFC775] [RFC1123]
XRMD hist {precursor for RMD} s h [RFC775] [RFC1123]
-N/A- TVFS Trivial Virtual File Store p o [RFC3659]

Footnotes

[1]
While an IETF Standards Action would be required to make the FEAT
mechanism [RFC2389] 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}