man(1) Manual page archive


     FTP(1)                 (February 23, 1989)                 FTP(1)

     NAME
          ftp - internet file transfer program

     SYNOPSIS
          ftp [ option ... ] [ host ]

          pftp [ option ... ] [ host ]

     DESCRIPTION
          Ftp transfers files to and from a remote network host com-
          puter via the Internet file transfer protocol.  To reach
          outside Internet sites from v10 machines, prefix the Inter-
          net host name with `inet!'; from System V machines, use
          pftp. After attempting to connect to the remote host, if
          any, ftp enters its command interpreter and prompts for
          instructions.  The following commands are recognized:

          ! [ command [ args ] ]
               Invoke an interactive shell on the local machine.  If
               there are arguments, the first is taken to be a command
               to execute directly, with the rest of the arguments as
               its arguments.

          $ macro-name [ args ]
               Execute the macro macro-name that was defined with the
               macdef command.  Arguments are passed to the macro
               unglobbed.

          account [ passwd ]
               Supply a supplemental password required by a remote
               system for access to resources once a login has been
               successfully completed.  If no argument is included,
               the user will be prompted for an account password in a
               non-echoing input mode.

          append local-file [ remote-file ]
               Append a local file to a file on the remote machine.
               If a remote-file is not specified, the local file name
               is used subject to altering ntrans or nmap . File
               transfer uses the current settings for type, format,
               mode, and structure.

          ascii
               Set the file transfer type to network ASCII.  This is
               the default type.

          bell Arrange that a bell be sounded after each file transfer
               command is completed.

          binary

     FTP(1)                 (February 23, 1989)                 FTP(1)

               Set the file transfer type to support binary image
               transfer.

          bye  Terminate the session.  An end of file will also termi-
               nate the session.

          case Toggle remote computer file name case mapping during
               mget commands.  When case is on (default is off),
               remote computer file names with all letters in upper
               case are written in the local directory with the let-
               ters mapped to lower case.

          cd remote-directory
               Change the working directory on the remote machine to
               remote-directory.

          cdup Change the remote machine working directory to the par-
               ent of the current remote machine working directory.

          close
               Terminate the session.  Any defined macros are erased.

          cr   Toggle carriage return stripping during ascii type file
               retrieval.  Records are denoted by a carriage
               return/linefeed sequence during ascii type file trans-
               fer.  When cr is on (the default), carriage returns are
               stripped from this sequence to conform with the UNIX
               single linefeed record delimiter.  Records on non-UNIX
               remote systems may contain single linefeeds; when an
               ascii type transfer is made, these linefeeds may be
               distinguished from a record delimiter only when cr is
               off.

          delete remote-file
               Delete the file remote-file on the remote machine.

          debug [ debug-level ]
               Toggle debugging or set the debugging level.  When
               debugging is on, ftp prints each command sent to the
               remote machine, preceded by the string `-->'.

          dir [ remote-directory ] [ local-file ]
               Place in local-file a listing of the contents of
               remote-directory. If local-file is `-' or absent send
               output to the terminal.  If `prompt' is on, ftp asks
               for local-file to be confirmed.  If no remote-directory
               is specified, the current working directory on the
               remote machine is used.

          disconnect
               A synonym for close.

     FTP(1)                 (February 23, 1989)                 FTP(1)

          form format
               Set the file transfer form to format. The default for-
               mat is `file'.

          get remote-file [ local-file ]
               Retrieve the remote-file and store it on the local
               machine.  If the local file name is not specified, it
               is given the same name it has on the remote machine,
               subject to altering by case, ntrans, and nmap settings.
               The current settings for type, form, mode, and
               structure are used while transferring the file.

          glob Toggle filename expansion for mdelete, mget, and mput.
               If globbing is turned off with glob, the file name
               arguments are taken literally and not expanded.  Glob-
               bing for mput is done as in csh(1). For mdelete and
               mget, ach remote file name is expanded separately on
               the remote machine and the lists are not merged.
               Expansion of a directory may be different from expan-
               sion of the name of an ordinary file, depending on the
               foreign operating system and FTP server.  It may be
               previewed by doing `mls remote-files -'.  Note: mget
               and mput are not meant to transfer entire directory
               subtrees of files.  That can be done by transferring a
               tar(1) archive of the subtree (in binary mode).

          hash Toggle hash-sign (#) printing for each data block
               transferred.  The size of a data block is 1024 bytes.

          help [ command ]
               Print an informative message about the meaning of
               command. If no argument is given, ftp prints a list of
               the known commands.

          lcd [ directory ]
               Change the working directory on the local machine.  If
               no directory is specified, the user's home directory is
               used.

          ls [ remote-directory ] [ local-file ]
               List in local-file the contents of a directory on the
               remote machine.  If local-file is `-' or absent, the
               output is sent to the terminal.  The form of the list
               depends on the remote server; most UNIX systems will
               produce output from the command `ls -l'.  (See also
               nlist.)  If remote-directory is not specified, the cur-
               rent working directory is used.

          macdef macro-name
               Define a macro.  Subsequent lines are stored under
               macro-name; a null line (consecutive newline characters
               in a file or carriage returns from the terminal)

     FTP(1)                 (February 23, 1989)                 FTP(1)

               terminates macro input mode.  There is a limit of 16
               macros and 4096 total characters in all defined macros.
               Macros remain defined until a close command is exe-
               cuted.  The macro processor interprets $ and \ as spe-
               cial characters.  A $ followed by a number (or numbers)
               is replaced by the corresponding argument on the macro
               invocation command line.  A $ followed by an `i' sig-
               nals that macro processor that the executing macro is
               to be looped.  On the first pass $i is replaced by the
               first argument on the macro invocation command line, on
               the second pass it is replaced by the second argument,
               and so on.  A \ followed by any character is replaced
               by that character.  Use \ to prevent special treatment
               of $.

          mdelete [ remote-files ]
               Delete the remote-files on the remote machine.

          mdir remote-files local-file
               Like dir, except multiple remote files may be speci-
               fied.  If interactive prompting is on, ftp will prompt
               the user to verify that the last argument is indeed the
               target local file for receiving mdir output.

          mget remote-files
               Expand remote-files on the remote machine and do a
               `get' for each file name thus produced.  See `glob' for
               details on the filename expansion.  Resulting file
               names will then be processed according to case, ntrans,
               and nmap settings.  Files are transferred into the
               local working directory.

          mkdir directory-name
               Make a directory on the remote machine.

          mls remote-files local-file
               Like `nlist', except multiple remote files may be spec-
               ified, and a local-file must be specified.  If `prompt'
               is on, ftp asks to confirm the local-file.

          mode [ mode-name ]
               Set the file transfer mode to mode-name. The default
               mode is `stream'.

          modtime file-name
               Show the last modification time of the file on the
               remote machine.

          mput local-files
               Expand wild cards in the list of local files given as
               arguments and do a `put' for each file in the resulting
               list.  See `glob' for details of filename expansion.

     FTP(1)                 (February 23, 1989)                 FTP(1)

               Resulting file names will then be processed according
               to ntrans and nmap settings.

          nlist [ remote-directory ] [ local-file ]
               Like `ls', giving only file names.

          nmap [ inpattern outpattern ]
               Set or unset the filename mapping mechanism.  If no
               arguments are specified, the filename mapping mechanism
               is unset.  If arguments are specified, remote filenames
               are mapped during mput commands and put commands issued
               without a specified remote target filename.  If argu-
               ments are specified, local filenames are mapped during
               mget commands and get commands issued without a speci-
               fied local target filename.  This command is useful
               when connecting to a non-UNIX remote computer with dif-
               ferent file naming conventions or practices.  The map-
               ping follows the pattern set by inpattern and
               outpattern. Inpattern is a template for incoming file-
               names (which may have already been processed according
               to the ntrans and case settings).  Variable templating
               is accomplished by including the sequences `$1', `$2',
               ..., `$9' in inpattern. Use `\' to prevent special
               treatment of $.  For example, given inpattern $1.$2 and
               the remote file name `mydata.data', $1 would have the
               value `mydata', and $2 would have the value `data'.
               The outpattern determines the resulting mapped file-
               name.  The sequences $1, $2, ...., $9 are replaced by
               any value resulting from the inpattern template.  The
               sequence $0 is replace by the original filename.  Addi-
               tionally, the sequence '[seq1,seq2]' is replaced by
               seq1 if seq1 is not a null string; otherwise it is
               replaced by seq2. For example, the command `nmap
               $1.$2.$3 [$1,$2].[$2,file]' would yield the output
               filename `myfile.data' for input filenames
               `myfile.data' and `myfile.data.old', `myfile.file' or
               the input filename `myfile', and `myfile.myfile' for
               the input filename `.myfile'.  Spaces may be included
               in outpattern, for example: nmap $1 "|sed 's/  *$//' >
               $1" .

          ntrans [ inchars [ outchars ] ]
               Set or unset the filename character translation mecha-
               nism.  If no arguments are specified, the filename
               character translation mechanism is unset.  If arguments
               are specified, characters in remote filenames are
               translated during mput commands and put commands issued
               without a specified remote target filename.  If argu-
               ments are specified, characters in local filenames are
               translated during mget commands and get commands issued
               without a specified local target filename.  This com-
               mand is useful when connecting to a non-UNIX remote

     FTP(1)                 (February 23, 1989)                 FTP(1)

               computer with different file naming conventions or
               practices.  Characters in a filename matching a charac-
               ter in inchars are replaced with the corresponding
               character in outchars. If the character's position in
               inchars is longer than the length of outchars, the
               character is deleted from the file name.

          open host [ port ]
               Establish a connection to the specified host FTP
               server.  An optional port number may be supplied, in
               which case, ftp will attempt to contact an FTP server
               at that port.  If the auto-login option is on
               (default), ftp will also attempt to automatically log
               the user in to the FTP server (see below).

          prompt
               Toggle file-by-file prompting fo mget, mput, and
               mdelete (on by default).

          proxy ftp-command
               Execute an ftp command on a secondary control connec-
               tion.  This command allows simultaneous connection to
               two remote ftp servers for transferring files between
               the two servers.  The first proxy command should be an
               open, to establish the secondary control connection.
               Enter the command `proxy ?'  to see other commands exe-
               cutable on the secondary connection.  The following
               commands behave differently when prefaced by proxy:
               open will not define new macros during the auto-login
               process, close will not erase existing macro defini-
               tions, get and mget transfer files from the host on the
               primary control connection to the host on the secondary
               control connection, and put, mput, and append transfer
               files from the host on the secondary control connection
               to the host on the primary control connection.

          put local-file [ remote-file ]
               Store a local file on the remote machine.  If remote-
               file is not specified, the local file name is used
               after processing according to any ntrans or nmap set-
               tings.  File transfer uses the current settings for
               type, format, mode, and structure.

          pwd  Print the name of the current working directory on the
               remote machine.

          quit A synonym for bye.

          quote arg1 arg2 ...
               The arguments specified are sent, verbatim, to the
               remote FTP server.

     FTP(1)                 (February 23, 1989)                 FTP(1)

          recv remote-file [ local-file ]
               A synonym for get.

          remotehelp [ command-name ]
               Request help from the remote FTP server.  If a
               command-name is specified it is supplied to the server
               as well.

          remotestatus [ file-name ]
               With no arguments, show status of remote machine.  If
               file-name is specified, show status of file-name on the
               remote machine.

          rename [ from ] [ to ]
               Rename the file from on the remote machine, to the file
               to.

          reset
               Clear reply queue.  This command re-synchronizes
               command/reply sequencing with the remote ftp server.
               Resynchronization may be necessary following a viola-
               tion of the ftp protocol by the remote server.

          rmdir directory-name
               Delete a directory on the remote machine.

          runique
               Toggle storing of files on the local system with unique
               filenames.  If the target of a get or mget command
               already exists locally, a `.1' is appended to the name.
               If that name, too, matches another existing file, a
               `.2' is appended and so on until `.99', when the trans-
               fer is aborted.  Note that runique will not affect
               local files generated from a shell command (see below).
               The default value is off.

          send local-file [ remote-file ]
               A synonym for put.

          sendport
               Toggle the use of PORT commands.  By default, ftp will
               attempt to use a PORT command when establishing a con-
               nection for each data transfer.  The use of PORT com-
               mands can prevent delays when performing multiple file
               transfers. If the PORT command fails, ftp will use the
               default data port.  When the use of PORT commands is
               disabled, no attempt will be made to use PORT commands
               for each data transfer.  This is useful for certain FTP
               implementations which ignore PORT commands but incor-
               rectly indicate they've been accepted.

          size file-name

     FTP(1)                 (February 23, 1989)                 FTP(1)

               Return size of file-name on the remote machine.

          status
               Show the current status of ftp.

          struct [ struct-name ]
               Set the file transfer structure to struct-name. By
               default `stream' structure is used.

          sunique
               Toggle storing of files on remote machine under unique
               file names.  Default value is off.

          system
               Show the type of operating system running on the remote
               machine.

          tenex
               Set the file transfer type to that needed to talk to
               TENEX machines.

          trace
               Toggle packet tracing.

          type [ type-name ]
               Set the file transfer type to type-name. If no type is
               specified, the current type is printed.  The default
               type is network ASCII.

          user user-name [ password ] [ account ]
               Identify yourself to the remote FTP server.  If the
               password is not specified and the server requires it,
               ftp will prompt the user for it (after disabling local
               echo).  If an account field is not specified, and the
               FTP server requires it, the user will be prompted for
               it.  If an account field is specified, an account com-
               mand will be relayed to the remote server after the
               login sequence is completed if the remote server did
               not require it for logging in.  Unless ftp is invoked
               with `auto-login' disabled, this process is done auto-
               matically on initial connection to the FTP server.

          verbose
               Toggle verbose mode.  In verbose mode, all responses
               from the FTP server are displayed to the user.  In
               addition, if verbose is on, when a file transfer com-
               pletes, statistics regarding the efficiency of the
               transfer are reported.  By default, verbose is on.

          ? [ command ]
               A synonym for help.

     FTP(1)                 (February 23, 1989)                 FTP(1)

          Command arguments which have embedded spaces may be quoted
          with quote " marks.

        Aborting a file transfer
          The signal processing in the research version of ftp has
          been stripped out.  Aborts will generally close the connec-
          tion.

        File naming conventions
          Files specified as arguments to ftp commands are processed
          according to the following rules.

          1)   If the file name `-' is specified, stdin (for reading)
               or stdout (for writing) is used.

          2)   If the first character of the file name is `|', the
               remainder of the argument is interpreted as a shell
               command.  Ftp reads the standard output of the command,
               or writes the standard input.  If the shell command
               includes spaces, it must be quoted with double quotes.
               A useful example of this mechanism is: `|more'.

          3)   Failing the above checks, if glob is enabled, local
               file names are expanded according to the rules used in
               csh(1); c.f. the glob command. If the ftp command
               expects a single local file (e.g.  put), only the first
               filename generated by the globbing operation is used.

          4)   For mget commands and get commands with unspecified
               local file names, the local filename is the remote
               filename, subject to altering by case, ntrans, or nmap
               setting.  The resulting filename may then be altered if
               runique is on.

          5)   For mput commands and put commands with unspecified
               remote file names, the remote filename is the local
               filename, subject to altering by ntrans or nmap set-
               ting.  The resulting filename may then be altered by
               the remote server if sunique is on.

        File transfer parameters
          The FTP specification specifies many parameters which may
          affect a file transfer.  The type may be one of `ascii',
          `image' (binary), `ebcdic', and `local byte size' (for PDP-
          10's and PDP-20's mostly).  Ftp supports the ascii and image
          types of file transfer, plus local byte size 8 for tenex
          mode transfers.

          Ftp supports only the default values for the remaining file
          transfer parameters: mode, form, and struct.

        Options

     FTP(1)                 (February 23, 1989)                 FTP(1)

          Options may be specified at the command line, or to the com-
          mand interpreter.

          -v   Verbose.  Show all responses from the remote server, as
               well as report on data transfer statistics.

          -n   Do not attempt `auto-login' upon initial connection.
               If auto-login is enabled, ftp will check the (see
               below) file in the user's home directory for an entry
               describing an account on the remote machine.  If no
               entry exists, ftp will prompt for the remote machine
               login name (default is the user identity on the local
               machine), and, if necessary, prompt for a password and
               an account with which to login.

          -i   Do not prompt during multiple file transfers.

          -d   Enable debugging.

          -g   Disables file name globbing.

        The .netrc file
          The file contains login and initialization information used
          by the auto-login process.  It resides in the user's home
          directory.  The following tokens are recognized; they may be
          separated by spaces, tabs, or new-lines:

          machine name
               Identify a remote machine name.  The auto-login process
               searches for a machine token that matches the remote
               machine specified on the ftp command line or as an open
               command argument.  Once a match is made, subsequent
               tokens are processed, until end of file is reached or
               another machine or a default token is encountered.

          default
               This is the same as machine name except that default
               matches any name.  There can be only one default token,
               and it must be after all machine tokens.  This is nor-
               mally used as:

                    default login anonymous password user@site

               thereby giving the user automatic anonymous ftp login
               to machines not specified in .netrc.

          login name
               Identify a user on the remote machine.  If this token
               is present, the auto-login process will initiate a
               login using the specified name.

          password string

     FTP(1)                 (February 23, 1989)                 FTP(1)

               Supply a password.  If this token is present, the
               auto-login process will supply the specified string if
               the remote server requires a password as part of the
               login process.  If this token is present in for any
               user other than `anonymous', and is readable by nonown-
               ers, ftp will abort auto-login.

          account string
               Supply an additional account password.  If this token
               is present, auto-login supplies the string when the
               remote server demands an additional account password;
               otherwise auto-login initiates an ACCT command.

          macdef name
               Define a macro in the style of macdef.  If a macro
               named init is defined, it is automatically executed as
               the last step in auto-login.

     SEE ALSO
          ftpd(8)

     BUGS
          Remote servers may not support all features documented here.
          Interrupts cause ftp to exit.