[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

Tweet
This is a modified version of the Internet RFC suitable for machine-translating. Original version is available here: RFC775

UNKNOWN
      RFC 775          Directory oriented FTP commands        Page 1
      
      
      
                       DIRECTORY ORIENTED FTP COMMANDS
      
                         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".
      
           XPWD
                         Print the current working directory.
      
           XCUP
Change to the parent of the current working
                         directory.
      
      
      
      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
      XCWD.
      
      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
      <DFRANKLIN.MYDIR>.
      
      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:
      
               257<space>"<directory-name>"<space><commentary>
      
      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
      (this is a problem on Unix, but shouldn't be one on Tops-20).
      
      Essentially because the XPWD command returns  the  same  type  of
information as the successful XMKD command, we have implemented
      the successful XPWD command to use the 257 reply code as well.
      
      We present here a summary of the proposed  reply  codes  for  the
experimental commands. The codes given outside parentheses are consistent with RFC 691; i.e., are for the old protocol, as updated by the suggestions in that RFC. The server and user programs at BBN-Unix currently implement these codes. Reply 257 is the only new code. Reply codes shown within parentheses are
      for the "new" ftp protocol, most recently documented in RFC  765.
      
      
      
      
      

RFC 775          Directory oriented FTP commands        Page 4
      
      
      
      The invented code for the RFC 765 Protocol is 251.
      
      Command:
      
              reply code      explanation
      
      
      XMKD                    create directory
      
              257 (251) "pathname" created
521 (450) "pathname" already exists 506 (502) action not implemented 521 (450) access denied 550 (501) bad pathname syntax or ambiguous
              425 (451) random file system error
      
      XCUP                    change directory to
                                      superior of current one
      
              200 (200) working directory changed
506 (502) action not implemented 507 (551) no superior directory 521 (450) access denied
              425 (451) random file system error
      
      XRMD                    remove directory
      
              224 (250) deleted ok
506 (502) action not implemented 521 (450) access denied 550 (501) bad pathname syntax or ambiguous
              425 (451) random file system error
      
      XPWD                    print current working
                                      directory
      
              257 (251) "pathname"
425 (451) random file system error
              506 (502) action not implemented
      
      
      
      
      
      
      
      
      
      

RFC 775          Directory oriented FTP commands        Page 5
      
      
                                 SUBTLETIES
      
      Because these  commands  will  be  most  useful  in  transferring
subtrees from one machine to another, we must stress the fact that the argument to XMKD is to be interpreted as a sub-directory of the current working directory, unless it contains enough information for the destination host to tell otherwise. A
      hypothetical example of its use in the Tops-20 world:
      
                  XCWD <some.where>
200 Working directory changed
XMKD overrainbow 257 "<some.where.overrainbow>" directory created XCWD overrainbow 431 No such directory XCWD <some.where.overrainbow>
                  200 Working directory changed
      
                  XCWD <some.where>
200 Working directory changed to <some.where> XMKD <unambiguous> 257 "<unambiguous>" directory created
                  XCWD <unambiguous>
      
      Note that the first example results  in  a  subdirectory  of  the
connected directory. In contrast, the argument in the second example contains enough information for Tops-20 to tell that the <unambiguous> directory is a top-level directory. Note also that in the first example the user "violated" the protocol by attempting to access the freshly created directory with a name other than the one returned by Tops-20. Problems could have resulted in this case had there been an <overrainbow> directory; this is an ambiguity inherent in some Tops-20 implementations. Similar considerations apply to the XRMD command. The point is this: except where to do so would violate a host's conventions for denoting relative versus absolute pathnames, the host should treat the operands of the XMKD and XRMD commands as subdirectories. The 257 reply to the XMKD command must always
      contain the absolute pathname of the created directory.
      
      
      
                                 References
      
      File Transfer Protocol (RFC 765), Postel,  J., June 1980
      
      
      
      

RFC 775          Directory oriented FTP commands        Page 6
      
      
      
      CWD Command of FTP (RFC 697), Lieb, J., NIC 32963, 14 July 1975
One More Try on the FTP (RFC 691), Harvey, B., NIC 32700, 28 May 1975 Revised FTP Reply Codes (RFC 640), Postel, J., N. Neigus, K. Pogran, NIC 30843, 5 June 1974 File Transfer Protocol (RFC 542), Neigus, N., NIC 17759, 12 July 1977


Translate documents to 日本語, svenska, Nederlands, Deutsch, français, русский, italiano, español, Tiếng Việt, polski, português, 中文, українська, català, norsk, فارسی, suomi, Bahasa Indonesia, العربية, čeština, 한국어, Bahasa Melayu, magyar, română, српски and other languages.
inserted by FC2 system