MLST
Click on the red underlined text to get to the source
... 3]. Four new
commands are added: "SIZE", "MDTM", "MLST", and "MLSD". The existing
command "REST ...
... Various FTP commands take pathnames as arguments, or return pathnames
in responses. When the MLST command is supported, as indicated in
the response to the FEAT command [6 ...
... of the pathname. See [7] for a fuller explanation of the character
encoding issues. All implementations supporting MLST MUST support
[7].
...
... STREAM mode, thus is widely available. However, where
supported, the "modify" fact that can be provided in the result from
the new MLST command is recommended as a superior alternative.
When attempting to restart ...
... file transfer.
Note that using MLST (described below), where available, can provide
this information and much more, thus giving an even better indication
that a file has changed and that restarting ...
... as when about to restart an interrupted transfer). For other uses,
the "Size" fact of the MLST command (see section 7.5.7) ought be
requested.
...
...
The MLST and MLSD commands are intended to standardize the file and
directory information returned by the server ...
... replies is strictly defined although extensible.
Two commands are defined, MLST and MLSD. MLST provides data about
...
... Two commands are defined, MLST and MLSD. MLST provides data about
exactly the object named on its command line, and no others. MLSD ...
... named, otherwise a 501 reply is returned. In either case, if no
object is named, the current directory is assumed. That will cause
MLST to send a one-line response, describing the current directory
itself, and MLSD to list the contents of the current directory.
...
... UTF-8/Unicode and "raw" forms as
arguments, and in responses both to the MLST and MLSD commands, and
all other FTP commands ...
...
The MLST and MLSD commands each allow a single optional argument.
This argument may be either a directory name or, for MLST ...
... MLST and MLSD commands each allow a single optional argument.
This argument may be either a directory name or, for MLST only, a
file name. For these purposes, a "file name" is the name of any
entity ...
... contents of the named directory, otherwise it issues a 501 reply, and
does not open a data connection. In all cases for MLST, a single set
of fact lines (usually a single fact line) containing the information
about the named file or directory shall be returned over the control
connection ...
... MLSD must return a listing of the
contents of the current working directory, and MLST must return a
listing giving information about the current working directory
...
... No title, header, or summary, lines, or any other formatting, other
than as is specified below, is ever returned in the output of an MLST
or MLSD command.
...
...
If the parameter is valid, then for an MLST command, the server-PI
will send the first (leading) line of the control response, the entry
...
... identical.
Note that for MLST the fact set is preceded by a space. That is
provided to guarantee that the fact set cannot be accidentally
interpreted as the terminating line of the control response, but is
...
... RFC 959std9 [3] are possible in response to the MLST and MLSD commands.
In particular, syntax errors can generate 500 or 501 replies. Giving
...
...
The file name returned in the MLST response should be the same name
as was specified in the MLST command, or, where TVFS ...
... The file name returned in the MLST response should be the same name
as was specified in the MLST command, or, where TVFS is supported, a
fully qualified TVFS ...
... fully qualified TVFS path naming the same file. Where no argument
was given to the MLST command, the server-PI may either include an
empty file name in the response, or it may supply a name that refers
...
... current practices is deciding when a file is a directory. If it is a
directory, is it the current directory, a regular directory, or a
parent directory? The MLST specification makes this unambiguous
using the type fact. The type fact given specifies information about
the object listed on the same line of the MLST ...
... MLST specification makes this unambiguous
using the type fact. The type fact given specifies information about
the object listed on the same line of the MLST response.
Five values are possible for the type fact:
...
... FTP implementations must
understand this size may not be precise and may change between the
time of a MLST and RETR operation.
...
... Simple MLST ...
... MLST of a directory ...
... Again the PWD is just for the purposes of demonstration for the
example. The MLST fact line this time shows that the file listed is
a directory, that it was last modified at 08:52:15 on the 7th of
November, 1998 UTC ...
... delete the "size" and "modify" facts, and add the
"unique" fact. First, facts about a file name have been obtained via
MLST. Note that no fully qualified pathname was given this time.
That was because the server was unable to determine that information.
Then having determined that the file name represents a directory,
...
... "symbolic" links to the first two. None of that information is
available via standard MLST facts, it is sufficient for the purposes
of FTP to note that all represent the same file, and that the same
...
...
C> MLST
S> 250-Begin
S> type=dir;unique=AQkAAAAAAAABCAAA; /
...
... listing of its own source code. Note that this implementation does
not include the fully qualified path name in its "cdir" and "pdir"
entries, nor in the output from "MLST". Also note that the facts
requested were modified between the "MLST" and "MLSD ...
... entries, nor in the output from "MLST". Also note that the facts
requested were modified between the "MLST" and "MLSD" commands,
though that exchange has not been shown here.
...
... FEAT command, a server-FTP process that
supports MLST, and MLSD, plus internationalization of pathnames, MUST
...
... MLSD, plus internationalization of pathnames, MUST
indicate that this support exists. It does this by including a MLST
feature line. As well as indicating the basic support, the MLST
...
... indicate that this support exists. It does this by including a MLST
feature line. As well as indicating the basic support, the MLST
feature line indicates which MLST facts are available from the
...
... feature line. As well as indicating the basic support, the MLST
feature line indicates which MLST facts are available from the
server, and which of those will be returned if no subsequent "OPTS
MLST ...
... MLST facts are available from the
server, and which of those will be returned if no subsequent "OPTS
MLST" command is sent.
mlst-feat = SP ...
... given, then the server-FTP process is indicating that it supports
MLST, but implements no facts. Only pathnames can be returned. This
would be a minimal MLST implementation, and useless for most
...
... MLST, but implements no facts. Only pathnames can be returned. This
would be a minimal MLST implementation, and useless for most
practical purposes. Where the factlist is present, the factnames
included indicate the facts supported by the server ...
... by the server. Where the
optional asterisk appears after a factname, that fact will be
included in MLST format responses, until an "OPTS MLST" is given to
alter the list of facts returned. After that, subsequent FEAT
commands ...
... optional asterisk appears after a factname, that fact will be
included in MLST format responses, until an "OPTS MLST" is given to
alter the list of facts returned. After that, subsequent FEAT
commands will return the asterisk to show the facts selected by the
...
... alter the list of facts returned. After that, subsequent FEAT
commands will return the asterisk to show the facts selected by the
most recent "OPTS MLST".
Note that there is no distinct FEAT ...
... FEAT output for MLSD. The presence of
the MLST feature indicates that both MLST and MLSD are supported.
...
...
Aside from some features irrelevant here, this server indicates that
it supports MLST including several, but not all, standard facts, all
of which it will send by default. It also supports two OS dependent
facts, and one locally defined fact. The latter three must be
...
...
Again, in addition to some irrelevant features here, this server
indicates that it supports MLST, four of the standard facts, one of
which ("unique") is not enabled by default, and several OS dependent
facts, one of which is provided by the server ...
... OPTS Parameters for MLST ...
... wishes to be returned in all subsequent MLSx commands until another
OPTS MLST command is sent. The format is specified by:
mlst-opts = "OPTS" SP ...
... SP 1*( factname ";" )]
By sending the "OPTS MLST" command, the client requests the server to
include only the facts listed as arguments to the command in
...
... subsequent output from MLSx commands. Facts not included in the
"OPTS MLST" command MUST NOT be returned by the server. Facts that
are included should be returned for each entry returned from the MLSx ...
... possible, but very expensive, for some servers. It is generally
acceptable to retrieve any of the facts that the server offers as its
default set before any "OPTS MLST" command has been given, however
clients should use particular caution before requesting any facts not
...
... Note, there is no "OPTS MLSD" command, the fact names set with the
"OPTS MLST" command apply to both MLST and MLSD commands.
...
... MLSD" command, the fact names set with the
"OPTS MLST" command apply to both MLST and MLSD commands.
...
... MLSD commands.
Servers are not required to accept "OPTS MLST" commands before
authentication of the user-PI ...
... OPTS MLST Response ...
...
The facts named in the response are those that the server will now
include in MLST (and MLSD) response, after the processing of the
"OPTS MLST ...
... MLST (and MLSD) response, after the processing of the
"OPTS MLST" command. Any facts from the request not supported by the
server will be omitted from this response message. If no facts will
...
... in which they were requested, or that in which they will be listed in
a FEAT command response, or that in which facts are returned in MLST
responses. The fixed string "MLST OPTS" in the response may be
...
... FEAT command response, or that in which facts are returned in MLST
responses. The fixed string "MLST OPTS" in the response may be
returned in any case, or mixture of cases.
...
... C> Feat
S> 211- Features supported
S> MLST Type*;Size;Modify*;Perm;Unique;UNIX.mode;UNIX.chgd;X.hidden;
...
... C> Feat
S> 211- Features supported
S> MLST Type*;Size;Modify;Perm*;Unique;UNIX.mode*;UNIX.chgd;X.hidden;
...
...
S> 211- Features supported
S> MLST Type*;Size;Modify;Perm;Unique;UNIX.mode;UNIX.chgd;X.hidden;
...
... S> 211 End
C> OPTS mlst size;frogs;
S> 200 MLST OPTS Size;
C> Feat
S> 211- Features supported
...
... C> Feat
S> 211- Features supported
S> MLST Type;Size*;Modify;Perm;Unique;UNIX.mode;UNIX.chgd;X.hidden;
...
... S> 211 End
C> opts MLst unique type;
S> 501 Invalid MLST options
C> Feat
S> 211- Features supported
...
... C> Feat
S> 211- Features supported
S> MLST Type;Size*;Modify;Perm;Unique;UNIX.mode;UNIX.chgd;X.hidden;
...
... S> 211 End
For the purposes of this example, features other than MLST have been
deleted from the output to avoid clutter. The example shows the
...
... deleted from the output to avoid clutter. The example shows the
initial default feature output for MLST. The facts requested are
then changed by the client. The first change shows facts that are
...
... C> Feat
S> 211- Features supported
S> MLST Type*;Size*;Modify*;Perm*;Unique*;UNIX.mode;UNIX.chgd;X.hidden;
...
... C> Feat
S> 211- Features supported
S> MLST Type;Size;Modify;Perm;Unique;UNIX.mode;UNIX.chgd;X.hidden;
...
... S> 250 End
C> OPTS mlst unique;size;
S> 200 MLST OPTS Size;Unique;
C> MLst tmp
S> 250- Listing tmp
...
... S> 250 End
C> OPTS mlst unique;type;modify;
S> 200 MLST OPTS Type;Modify;Unique;
C> MLst tmp
S> 250- Listing tmp
...
... S> 250 End
C> OPTS mlst fish;cakes;
S> 200 MLST OPTS
C> MLst tmp
S> 250- Listing tmp
...
... S> 250 End
C> OptS Mlst Modify;Unique;
S> 200 MLST OPTS Modify;Unique;
C> MLst tmp
S> 250- Listing tmp
...
... S> 250 End
C> opts MLst fish cakes;
S> 501 Invalid MLST options
C> MLst tmp
S> 250- Listing tmp
...
...
This example shows the effect of changing the facts requested upon
subsequent MLST commands. Notice that a syntax error leaves the set
of selected facts unchanged. Also notice exactly two spaces
...
...
Along with the introduction of MLST, traditional FTP commands must be
extended to allow for the use of more than US-ASCII ...
... EBCDIC
character sets. In general, the support of MLST requires support for
arbitrary character sets wherever file names and directory names are
...
...
The arguments to all of these commands should be processed the same
way that MLST commands and responses are processed with respect to
handling embedded spaces, CRs ...
