Directory oriented FTP commands
RFC 775

Document Type RFC - Unknown (December 1980; No errata)
Last updated 2013-03-02
Stream Legacy
Formats plain text html pdf htmlized bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 775 (Unknown)
Telechat date
Responsible AD (None)
Send notices to (None)
RFC 775          Directory oriented FTP commands        Page 1


                         David Mankins (dm@bbn-unix)
                         Dan Franklin (dan@bbn-unix)
                          A. D. Owen (ADOwen@bbnd)

      As a part of the Remote Site Maintenance (RSM) project for  ARPA,
      BBN  has installed and maintains the software of several DEC PDP-
      11s running the Unix operating system.  Since Unix  has  a  tree-
      like  directory  structure,  in  which directories are as easy to
      manipulate as ordinary files, we  have  found  it  convenient  to
      expand  the  FTP  servers  on  these machines to include commands
      which deal with the creation of  directories.   Since  there  are
      other  hosts  on  the  ARPA net which have tree-like directories,
      including Tops-20 and  Multics,  we  have  tried  to  make  these
      commands as general as possible.

      We have added four commands to our server:

           XMKD child
                         Make a directory with the name "child".

           XRMD child
                         Remove the directory with the name "child".

                         Print the current working directory.

                         Change to the parent of  the  current  working

      The  "child"  argument  should  be   created   (removed)   as   a
      subdirectory of the current working directory, unless the "child"
      string contains sufficient information to  specify  otherwise  to
      the server, e.g., "child" is an absolute pathname (in Multics and
      Unix), or child is something like "<abso.lute.path>" to Tops-20.

      RFC 775          Directory oriented FTP commands        Page 2

                                 REPLY CODES

      The XCUP command is a special case of XCWD, and  is  included  to
      simplify   the   implementation   of  programs  for  transferring
      directory  trees  between  operating  systems  having   different
      syntaxes for naming the parent directory.  Therefore we recommend
      that the reply codes for XCUP be identical to the reply codes  of

      Similarly,  we  recommend  that  the  reply  codes  for  XRMD  be
      identical to the reply codes for its file analogue, DELE.

      The reply codes for XMKD, however, are a bit more complicated.  A
      freshly created directory will probably be the object of a future
      XCWD command.  Unfortunately, the argument to XMKD may not always
      be  a suitable argument for XCWD.  This is the case, for example,
      when a  Tops-20  subdirectory  is  created  by  giving  just  the
      subdirectory  name.   That  is,  with  a  Tops-20 server FTP, the
      command sequence

                                 XMKD MYDIR
                                 XCWD MYDIR

      will fail.  The new directory may only  be  referred  to  by  its
      "absolute"  name;  e.g.,  if  the  XMKD command above were issued
      while  connected  to   the   directory   <DFRANKLIN>,   the   new
      subdirectory   could   only   be   referred   to   by   the  name

      Even on Unix and Multics, however, the argument given to XMKD may
      not  be  suitable.   If  it  is a "relative" pathname (that is, a
      pathname which is interpreted relative to the current directory),
      the  user would need to be in the same current directory in order
      to reach the subdirectory.  Depending on  the  application,  this
      may be inconvenient.  It is not very robust in any case.

      To solve these problems, upon successful completion  of  an  XMKD
      command, the server should return a line of the form:


      That is, the server will tell the user what string  to  use  when
      referring  to  the  created  directory.   The  directory name can
      contain any character; embedded double-quotes should  be  escaped

      RFC 775          Directory oriented FTP commands        Page 3

      by double-quotes (the "quote-doubling" convention).

      For example, a  user  connects  to  the  directory  /usr/dm,  and
      creates a subdirectory, named child:

                  XCWD /usr/dm
                  200 directory changed to /usr/dm
                  XMKD child
                  257 "/usr/dm/child" directory created

      An example with an embedded double quote:

                  XMKD foo"bar
                  257 "/usr/dm/foo""bar" directory created
                  XCWD /usr/dm/foo"bar
                  200 directory changed to /usr/dm/foo"bar

      We  feel that the prior existence of a subdirectory with the same
      name  should be interpreted as an error, and have implemented our
      server to give an "access denied" error reply in  that case.

                  CWD /usr/dm
                  200 directory changed to /usr/dm
                  XMKD child
                  521-"/usr/dm/child" directory already exists;
                  521    taking no action.

      We recommend that failure replies for XMKD be  analogous  to  its
      file  creating  cousin, STOR.  Also, we recommend that an "access
      denied" return be given if a file name with the same name as  the
      subdirectory  will conflict with the creation of the subdirectory
Show full document text