Directory oriented FTP commands
RFC 775
|
Document |
Type |
|
RFC - Unknown
(December 1980; No errata)
|
|
Authors |
|
|
|
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
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
Show full document text