dwww Home | Manual pages | Find package

TNFTP(1)                    General Commands Manual                   TNFTP(1)

NAME
       tnftp — Internet file transfer program

SYNOPSIS
       tnftp   [-46AadefginpRtVv?]   [-N   netrc]   [-o   output]   [-P  port]
             [-q  quittime]  [-r  retry]   [-s   srcaddr]   [-T dir,max[,inc]]
             [-x    xfersize]   [[user@]host [port]]   [[user@]host:[path][/]]
             [file:///path]
             [ftp://[user[:password]@]host[:port]/path[/][;type=type]]
             [http://[user[:password]@]host[:port]/path]
             [https://[user[:password]@]host[:port]/path] ...
       tnftp -u url file ...

DESCRIPTION
       tnftp is the user interface to the Internet standard File Transfer Pro-
       tocol.  The program allows a user to transfer files to and from  a  re-
       mote network site.

       The  last five arguments will fetch a file using the FTP or HTTP proto-
       cols, or by direct copying, into the current directory.  This is  ideal
       for  scripts.   Refer  to “AUTO-FETCHING FILES” below for more informa-
       tion.

       Options may be specified at the command line, or to the command  inter-
       preter.

       -4          Forces tnftp to only use IPv4 addresses.

       -6          Forces tnftp to only use IPv6 addresses.

       -A          Force  active  mode FTP.  By default, tnftp will try to use
                   passive mode FTP and fall back to active mode if passive is
                   not supported by the server.  This option causes  tnftp  to
                   always  use  an  active  connection.  It is only useful for
                   connecting to very old servers that do not  implement  pas-
                   sive mode properly.

       -a          Causes  tnftp  to bypass normal login procedure, and use an
                   anonymous login instead.

       -d          Enables debugging.

       -e          Disables command line editing.  This is  useful  for  Emacs
                   ange-ftp mode.

       -f          Forces a cache reload for transfers that go through the FTP
                   or HTTP proxies.

       -g          Disables file name globbing.

       -i          Turns off interactive prompting during multiple file trans-
                   fers.

       -N netrc    Use  netrc instead of ~/.netrc.  Refer to “THE .netrc FILE”
                   for more information.

       -n          Restrains tnftp from attempting “auto-login”  upon  initial
                   connection  for non auto-fetch transfers.  If auto-login is
                   enabled, tnftp will check the .netrc (see  below)  file  in
                   the  user's  home  directory for an entry describing an ac-
                   count on the remote machine.  If  no  entry  exists,  tnftp
                   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.
                   To  override the auto-login for auto-fetch transfers, spec-
                   ify the username (and optionally, password) as appropriate.

       -o output   When auto-fetching files,  save  the  contents  in  output.
                   output is parsed according to the “FILE NAMING CONVENTIONS”
                   below.   If  output  is  not ‘-’ or doesn't start with ‘|’,
                   then only the first file specified will be  retrieved  into
                   output; all other files will be retrieved into the basename
                   of their remote name.

       -P port     Sets the port number to port.

       -p          Enable  passive  mode  operation  for use behind connection
                   filtering firewalls.  This option has  been  deprecated  as
                   tnftp  now  tries  to  use passive mode by default, falling
                   back to active mode if the server does not support  passive
                   connections.

       -q quittime
                   Quit if the connection has stalled for quittime seconds.

       -R          Restart all non-proxied auto-fetches.

       -r wait     Retry the connection attempt if it failed, pausing for wait
                   seconds.

       -s srcaddr  Uses srcaddr as the local IP address for all connections.

       -t          Enables packet tracing.

       -T direction,maximum[,increment]
                   Set  the  maximum  transfer  rate  for direction to maximum
                   bytes/second, and if specified, the increment to  increment
                   bytes/second.  Refer to rate for more information.

       -u url file ...
                   Upload files on the command line to url where url is one of
                   the  ‘ftp://’ URL types as supported by auto-fetch (with an
                   optional target filename for single file uploads), and file
                   is one or more local files to be uploaded.

       -V          Disable verbose and progress, overriding the default of en-
                   abled when output is to a terminal.

       -v          Enable verbose and progress.  This is the default if output
                   is to a terminal (and in the case of progress, tnftp is the
                   foreground process).  Forces tnftp to  show  all  responses
                   from  the remote server, as well as report on data transfer
                   statistics.

       -x xfersize
                   Set the size of the socket  send  and  receive  buffers  to
                   xfersize.  Refer to xferbuf for more information.

       -?          Display help to stdout, and exit.

       The  client host with which tnftp is to communicate may be specified on
       the command line.  If this is done, tnftp will immediately  attempt  to
       establish  a connection to an FTP server on that host; otherwise, tnftp
       will enter its command interpreter  and  await  instructions  from  the
       user.   When tnftp is awaiting commands from the user the prompt ‘ftp>’
       is provided to the user.  The  following  commands  are  recognized  by
       tnftp:

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

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

       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
                   remote-file is left unspecified, the  local  file  name  is
                   used  in  naming the remote file after being altered by any
                   ntrans or nmap setting.  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      Set  the  file transfer type to support binary image trans-
                   fer.

       bye         Terminate the FTP session with the remote server  and  exit
                   tnftp.   An end of file will also terminate the session and
                   exit.

       case        Toggle remote computer file name case mapping  during  get,
                   mget  and mput 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 letters 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 parent
                   of the current remote machine working directory.

       chmod mode remote-file
                   Change the permission modes of the file remote-file on  the
                   remote system to mode.

       close       Terminate  the  FTP session with the remote server, and re-
                   turn to the command interpreter.  Any  defined  macros  are
                   erased.

       cr          Toggle carriage return stripping during ascii type file re-
                   trieval.  Records are denoted by a carriage return/linefeed
                   sequence  during  ascii  type file transfer.  When cr is on
                   (the default), carriage returns are stripped from this  se-
                   quence  to conform with the Unix single linefeed record de-
                   limiter.  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  delim-
                   iter only when cr is off.

       debug [debug-value]
                   Toggle debugging mode.  If an optional debug-value is spec-
                   ified  it  is used to set the debugging level.  When debug-
                   ging is on, tnftp prints each command sent  to  the  remote
                   machine, preceded by the string ‘-->’.

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

       dir [remote-path [local-file]]
                   Print  a  listing of the contents of a directory on the re-
                   mote machine.  The listing  includes  any  system-dependent
                   information  that  the server chooses to include; for exam-
                   ple, most Unix systems will produce output from the command
                   ‘ls -l’.  If remote-path is left unspecified,  the  current
                   working directory is used.  If interactive prompting is on,
                   tnftp will prompt the user to verify that the last argument
                   is  indeed  the target local file for receiving dir output.
                   If no local file is specified, or if local-file is ‘-’, the
                   output is sent to the terminal.

       disconnect  A synonym for close.

       edit        Toggle command line editing, and context sensitive  command
                   and  file completion.  This is automatically enabled if in-
                   put is from a terminal, and disabled otherwise.

       epsv, epsv4, epsv6
                   Toggle the use of the extended EPSV and  EPRT  commands  on
                   all IP, IPv4, and IPv6 connections respectively.  First try
                   EPSV/EPRT, and then PASV/PORT.  This is enabled by default.
                   If  an extended command fails then this option will be tem-
                   porarily disabled for the duration of the  current  connec-
                   tion, or until epsv, epsv4, or epsv6 is executed again.

       exit        A synonym for bye.

       features    Display what features the remote server supports (using the
                   FEAT command).

       fget localfile
                   Retrieve  the files listed in localfile, which has one line
                   per filename.

       form format
                   Set the file transfer form to  format.   The  default  (and
                   only supported) format is ‘non-print’.

       ftp host [port]
                   A synonym for open.

       gate [host [port]]
                   Toggle gate-ftp mode, which used to connect through the TIS
                   FWTK  and Gauntlet FTP proxies.  This will not be permitted
                   if the gate-ftp server hasn't been set  (either  explicitly
                   by  the  user, or from the FTPSERVER environment variable).
                   If host is given, then gate-ftp mode will be  enabled,  and
                   the  gate-ftp  server will be set to host.  If port is also
                   given, that will be used as the port to connect to  on  the
                   gate-ftp server.

       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  alter-
                   ation  by the current 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, mput, and
                   mreget.  If globbing is turned off with glob, the file name
                   arguments are taken literally and not  expanded.   Globbing
                   for  mput  is  done  as  in csh(1).  For mdelete, mget, and
                   mreget, each remote file name is expanded separately on the
                   remote machine and the lists are not merged.  Expansion  of
                   a  directory  name is likely to be different from expansion
                   of the name of an ordinary file: the exact  result  depends
                   on  the foreign operating system and FTP server, and can be
                   previewed by doing ‘mls remote-files -’.  Note: mget,  mput
                   and  mreget are not meant to transfer entire directory sub-
                   trees of files.  That can be done by transferring a  tar(1)
                   archive of the subtree (in binary mode).

       hash [size]
                   Toggle  hash-sign (‘#’) printing for each data block trans-
                   ferred.  The size of a data block defaults to  1024  bytes.
                   This  can be changed by specifying size in bytes.  Enabling
                   hash disables progress.

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

       idle [seconds]
                   Set the inactivity timer on the remote  server  to  seconds
                   seconds.   If  seconds  is  omitted, the current inactivity
                   timer is printed.

       image       A synonym for binary.

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

       less file   A synonym for page.

       lpage local-file
                   Display  local-file  with  the program specified by the set
                   pager option.

       lpwd        Print the working directory on the local machine.

       ls [remote-path [local-file]]
                   A synonym for dir.

       macdef macro-name
                   Define a macro.  Subsequent lines are stored as  the  macro
                   macro-name;  a null line (consecutive newline characters in
                   a file or carriage returns from  the  terminal)  terminates
                   macro  input  mode.  There is a limit of 16 macros and 4096
                   total characters in all defined macros.  Macro names can be
                   a maximum of 8 characters.  Macros are only  applicable  to
                   the  current session they are defined within (or if defined
                   outside a session, to the session  invoked  with  the  next
                   open  command), and remain defined until a close command is
                   executed.  To invoke  a  macro,  use  the  $  command  (see
                   above).

                   The macro processor interprets ‘$’ and ‘\’ as special char-
                   acters.   A  ‘$’  followed  by a number (or numbers) is re-
                   placed by the corresponding argument on the  macro  invoca-
                   tion  command  line.   A ‘$’ followed by an ‘i’ signals the
                   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 the
                   ‘\’ to prevent special treatment of the ‘$’.

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

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

       mget remote-files
                   Expand the 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,
                   which can be changed with lcd directory; new local directo-
                   ries can be created with ! mkdir directory.

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

       mls remote-files local-file
                   Like ls, except multiple remote files may be specified, and
                   the local-file must be specified.  If interactive prompting
                   is  on,  tnftp will prompt the user to verify that the last
                   argument is indeed the target local file for receiving  mls
                   output.

       mlsd [remote-path]
                   Display  the  contents of remote-path (which should default
                   to the current  directory  if  not  given)  in  a  machine-
                   parsable  form,  using  MLSD.  The format of display can be
                   changed with ‘remopts mlst ...’.

       mlst [remote-path]
                   Display the details about remote-path (which should default
                   to the current  directory  if  not  given)  in  a  machine-
                   parsable  form,  using  MLST.  The format of display can be
                   changed with ‘remopts mlst ...’.

       mode mode-name
                   Set the file transfer mode to mode-name.  The default  (and
                   only supported) mode is ‘stream’.

       modtime remote-file
                   Show  the  last modification time of the file on the remote
                   machine, in RFC 2822 format.

       more file   A synonym for page.

       mput local-files
                   Expand wild cards in the list of local files given as argu-
                   ments and do a put for each file  in  the  resulting  list.
                   See glob for details of filename expansion.  Resulting file
                   names  will  then be processed according to ntrans and nmap
                   settings.

       mreget remote-files
                   As per mget, but performs a reget instead of get.

       msend local-files
                   A synonym for mput.

       newer remote-file [local-file]
                   Get the file only if the modification time  of  the  remote
                   file  is  more  recent that the file on the current system.
                   If the file does not exist on the current system,  the  re-
                   mote  file is considered newer.  Otherwise, this command is
                   identical to get.

       nlist [remote-path [local-file]]
                   A synonym for ls.

       nmap [inpattern outpattern]
                   Set or unset the filename mapping mechanism.  If  no  argu-
                   ments  are specified, the filename mapping mechanism is un-
                   set.  If arguments  are  specified,  remote  filenames  are
                   mapped during mput commands and put commands issued without
                   a specified remote target filename.  If arguments are spec-
                   ified,  local filenames are mapped during mget commands and
                   get commands issued without a specified local target  file-
                   name.  This command is useful when connecting to a non-Unix
                   remote  computer  with different file naming conventions or
                   practices.   The  mapping  follows  the  pattern   set   by
                   inpattern and outpattern.

                   inpattern  is  a template for incoming filenames (which may
                   have already been processed according  to  the  ntrans  and
                   case settings).  Variable templating is accomplished by in-
                   cluding  the  sequences ‘$1’, ‘$2’, ..., ‘$9’ in inpattern.
                   Use ‘\’ to prevent this special treatment of the ‘$’  char-
                   acter.  All other characters are treated literally, and are
                   used  to  determine  the  nmap [inpattern] variable values.
                   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 filename.
                   The sequences ‘$1’, ‘$2’, ..., ‘$9’  are  replaced  by  any
                   value  resulting from the inpattern template.  The sequence
                   ‘$0’ is replaced by the original  filename.   Additionally,
                   the sequence [seq1,seq2] is replaced by seq1 if seq1 is not
                   a null string; otherwise it is replaced by seq2.  For exam-
                   ple, 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’   for   the   input  filename  ‘myfile’,  and
                   ‘myfile.myfile’ for the input filename  ‘.myfile’.   Spaces
                   may be included in outpattern, as in the example:

                         nmap $1 sed s/  *$// > $1

                   Use  the  ‘\’ character to prevent special treatment of the
                   ‘$’, ‘[’, ‘]’, and ‘,’ characters.

       ntrans [inchars [outchars]]
                   Set or unset the filename character translation  mechanism.
                   If  no  arguments  are  specified,  the  filename character
                   translation mechanism is unset.  If  arguments  are  speci-
                   fied,  characters in remote filenames are translated during
                   mput commands and put commands issued without  a  specified
                   remote  target filename.  If arguments are specified, char-
                   acters in local filenames are translated during  mget  com-
                   mands  and  get  commands  issued without a specified local
                   target filename.  This command is useful when connecting to
                   a non-Unix remote computer with different file naming  con-
                   ventions or practices.  Characters in a filename matching a
                   character  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 charac-
                   ter 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,
                   tnftp will attempt to contact an FTP server at  that  port.
                   If  the  set  auto-login option is on (default), tnftp will
                   also attempt to automatically log the user in  to  the  FTP
                   server (see below).

       page file   Retrieve file and display with the program specified by the
                   set pager option.

       passive [auto]
                   Toggle  passive  mode (if no arguments are given).  If auto
                   is given, act as if FTPMODE is set to ‘auto’.   If  passive
                   mode is turned on (default), tnftp will send a PASV command
                   for  all  data  connections instead of a PORT command.  The
                   PASV command requests that the remote server  open  a  port
                   for  the  data  connection  and  return the address of that
                   port.  The remote server  listens  on  that  port  and  the
                   client  connects  to  it.   When using the more traditional
                   PORT command, the client listens on a port and  sends  that
                   address  to  the  remote  server,  who connects back to it.
                   Passive mode is useful when using tnftp through  a  gateway
                   router or host that controls the directionality of traffic.
                   (Note  that  though FTP servers are required to support the
                   PASV command by RFC 1123, some do not.)

       pdir [remote-path]
                   Perform dir [remote-path], and display the result with  the
                   program specified by the set pager option.

       pls [remote-path]
                   Perform  ls  [remote-path], and display the result with the
                   program specified by the set pager option.

       pmlsd [remote-path]
                   Perform mlsd [remote-path], and display the result with the
                   program specified by the set pager option.

       preserve    Toggle preservation  of  modification  times  on  retrieved
                   files.

       progress    Toggle  display of transfer progress bar.  The progress bar
                   will be disabled for a transfer that has local-file as  ‘-’
                   or  a  command that starts with ‘|’.  Refer to “FILE NAMING
                   CONVENTIONS” for more information.  Enabling progress  dis-
                   ables hash.

       prompt      Toggle interactive prompting.  Interactive prompting occurs
                   during  multiple file transfers to allow the user to selec-
                   tively retrieve or store files.  If prompting is turned off
                   (default is on), any mget or mput will transfer all  files,
                   and any mdelete will delete all files.

                   When  prompting is on, the following commands are available
                   at a prompt:

                         a   Answer ‘yes’ to the current file,  and  automati-
                             cally answer ‘yes’ to any remaining files for the
                             current command.

                         n   Answer ‘no’, and do not transfer the file.

                         p   Answer  ‘yes’  to  the current file, and turn off
                             prompt mode (as if prompt off had been given).

                         q   Terminate the current operation.

                         y   Answer ‘yes’, and transfer the file.

                         ?   Display a help message.

                   Any other response will answer ‘yes’ to the current file.

       proxy ftp-command
                   Execute an FTP command on a secondary  control  connection.
                   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 FTP commands executable on the secondary con-
                   nection.  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
                   definitions, 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.  Third party
                   file transfers depend upon support of the FTP protocol PASV
                   command by the server on the secondary control connection.

       put local-file [remote-file]
                   Store a local file on the remote machine.   If  remote-file
                   is left unspecified, the local file name is used after pro-
                   cessing  according to any ntrans or nmap settings in naming
                   the remote file.  File transfer uses the  current  settings
                   for type, format, mode, and structure.

       pwd         Print  the name of the current working directory on the re-
                   mote machine.

       quit        A synonym for bye.

       quote [arg ...]
                   The arguments specified are sent, verbatim, to  the  remote
                   FTP server.

       rate direction [maximum [increment]]
                   Throttle the maximum transfer rate to maximum bytes/second.
                   If maximum is 0, disable the throttle.

                   direction may be one of:
                         all  Both directions.
                         get  Incoming transfers.
                         put  Outgoing transfers.

                   maximum  can be modified on the fly by increment bytes (de-
                   fault: 1024) each time a given signal is received:

                         SIGUSR1  Increment maximum by increment bytes.

                         SIGUSR2  Decrement maximum by increment  bytes.   The
                                  result must be a positive number.

                   If  maximum is not supplied, the current throttle rates are
                   displayed.

                   Note: rate is not yet implemented for ascii mode transfers.

       rcvbuf size
                   Set the size of the socket receive buffer to size.

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

       reget remote-file [local-file]
                   reget acts like get, except that if local-file  exists  and
                   is smaller than remote-file, local-file is presumed to be a
                   partially  transferred copy of remote-file and the transfer
                   is continued from the apparent point of failure.  This com-
                   mand is useful when transferring very large files over net-
                   works that are prone to dropping connections.

       remopts command [command-options]
                   Set options  on  the  remote  FTP  server  for  command  to
                   command-options    (whose   absence   is   handled   on   a
                   command-specific basis).  Remote FTP commands known to sup-
                   port options include: MLST (used for MLSD and MLST).

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

       reset       Clear  reply  queue.   This  command  re-synchronizes  com-
                   mand/reply  sequencing  with the remote FTP server.  Resyn-
                   chronization may be necessary following a violation of  the
                   FTP protocol by the remote server.

       restart marker
                   Restart  the  immediately following get or put at the indi-
                   cated marker.  On Unix systems, marker is  usually  a  byte
                   offset into the file.

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

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

       rstatus [remote-file]
                   With  no  arguments,  show  status  of  remote machine.  If
                   remote-file is specified, show status of remote-file on re-
                   mote machine.

       runique     Toggle storing of files on the  local  system  with  unique
                   filenames.   If  a file already exists with a name equal to
                   the target local filename for a get or mget command, a ‘.1’
                   is appended to the name.  If the resulting name matches an-
                   other existing file, a ‘.2’ is  appended  to  the  original
                   name.  If this process continues up to ‘.99’, an error mes-
                   sage is printed, and the transfer does not take place.  The
                   generated  unique  filename  will  be  reported.  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, tnftp will
                   attempt to use a PORT command when establishing  a  connec-
                   tion  for each data transfer.  The use of PORT commands can
                   prevent delays when performing multiple file transfers.  If
                   the PORT command fails, tnftp will  use  the  default  data
                   port.   When  the  use of PORT commands is disabled, no at-
                   tempt will be made to  use  PORT  commands  for  each  data
                   transfer.   This  is useful for certain FTP implementations
                   which do ignore PORT commands  but,  incorrectly,  indicate
                   they've been accepted.

       set [option value]
                   Set  option  to  value.  If option and value are not given,
                   display all of the options and their values.  The currently
                   supported options are:

                         anonpass     Defaults to $FTPANONPASS

                         ftp_proxy    Defaults to $ftp_proxy.

                         http_proxy   Defaults to $http_proxy.

                         https_proxy  Defaults to $https_proxy.

                         no_proxy     Defaults to $no_proxy.

                         pager        Defaults to $PAGER.

                         prompt       Defaults to $FTPPROMPT.

                         rprompt      Defaults to $FTPRPROMPT.

                         sslnoverify  Defaults to $FTPSSLNOVERIFY.

       site [arg ...]
                   The arguments specified are sent, verbatim, to  the  remote
                   FTP server as a SITE command.

       size remote-file
                   Return size of remote-file on remote machine.

       sndbuf size
                   Set the size of the socket send buffer to size.

       status      Show the current status of tnftp.

       struct struct-name
                   Set  the  file  transfer structure to struct-name.  The de-
                   fault (and only supported) structure is ‘file’.

       sunique     Toggle storing of files on remote machine under unique file
                   names.  The remote FTP server  must  support  FTP  protocol
                   STOU  command for successful completion.  The remote server
                   will report unique name.  Default value is off.

       system      Show the type of operating system running on the remote ma-
                   chine.

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

       throttle    A synonym for rate.

       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.

       umask [newmask]
                   Set  the default umask on the remote server to newmask.  If
                   newmask is omitted, the current umask is printed.

       unset option
                   Unset option.  Refer to set for more information.

       usage command
                   Print the usage message for command.

       user user-name [password [account]]
                   Identify  yourself  to  the  remote  FTP  server.   If  the
                   password is not specified and the server requires it, tnftp
                   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 command will be  re-
                   layed to the remote server after the login sequence is com-
                   pleted  if the remote server did not require it for logging
                   in.  Unless tnftp is invoked  with  “auto-login”  disabled,
                   this process is done automatically 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 completes, statistics
                   regarding the efficiency of the transfer are reported.   By
                   default, verbose is on.

       xferbuf size
                   Set  the  size  of  the  socket send and receive buffers to
                   size.

       ? [command]
                   A synonym for help.

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

       Commands  which toggle settings can take an explicit on or off argument
       to force the setting appropriately.

       Commands which take a byte count as an argument (e.g., hash, rate,  and
       xferbuf)  support  an optional suffix on the argument which changes the
       interpretation of the argument.  Supported suffixes are:
             b    Causes no modification.  (Optional)
             k    Kilo; multiply the argument by 1024
             m    Mega; multiply the argument by 1048576
             g    Giga; multiply the argument by 1073741824

       If tnftp receives a SIGINFO (see the status  argument  of  stty(1))  or
       SIGQUIT  signal  whilst a transfer is in progress, the current transfer
       rate statistics will be written to the standard error  output,  in  the
       same format as the standard completion message.

AUTO-FETCHING FILES
       In  addition  to  standard  commands, this version of tnftp supports an
       auto-fetch feature.  To enable auto-fetch,  simply  pass  the  list  of
       hostnames/files on the command line.

       The following formats are valid syntax for an auto-fetch element:

       [user@]host:[path][/]
             “Classic” FTP format.

             If  path  contains a glob character and globbing is enabled, (see
             glob), then the equivalent of mget path is performed.

             If the directory component of path contains no  globbing  charac-
             ters,   it   is  stored  locally  with  the  name  basename  (see
             basename(1)) of path, in the current directory.   Otherwise,  the
             full remote name is used as the local name, relative to the local
             root directory.

       ftp://[user[:password]@]host[:port]/path[/][;type=type]
             An  FTP  URL,  retrieved  using the FTP protocol if set ftp_proxy
             isn't defined.  Otherwise, transfer the URL using  HTTP  via  the
             proxy  defined  in set ftp_proxy.  If set ftp_proxy isn't defined
             and user is given, login as user.  In this case, use password  if
             supplied, otherwise prompt the user for one.

             If  a  suffix  of  ‘;type=A’  or  ‘;type=I’ is supplied, then the
             transfer type will take place as ascii or binary  (respectively).
             The default transfer type is binary.

             In order to be compliant with RFC 3986, tnftp interprets the path
             part of an ‘ftp://’ auto-fetch URL as follows:

             The ‘/’ immediately after the host[:port] is interpreted as a
                 separator  before  the  path, and not as part of the path it-
                 self.

             The path is interpreted as a ‘/’-separated list of name  com-
                 ponents.  For all but the last such component, tnftp performs
                 the equivalent of a cd command.  For the last path component,
                 tnftp performs the equivalent of a get command.

             Empty  name  components,  which  result  from ‘//’ within the
                 path, or from an extra ‘/’ at the beginning of the path, will
                 cause the equivalent of a  cd  command  without  a  directory
                 name.  This is unlikely to be useful.

             Any ‘%XX’ codes (per RFC 3986) within the path components are
                 decoded,  with  XX representing a character code in hexadeci-
                 mal.  This decoding takes place after the path has been split
                 into components, but before each component  is  used  in  the
                 equivalent of a cd or get command.  Some often-used codes are
                 ‘%2F’  (which  represents  ‘/’)  and  ‘%7E’ (which represents
                 ‘~’).

             The above interpretation has the following consequences:

             The path is interpreted relative to the default login  direc-
                 tory  of  the  specified user or of the ‘anonymous’ user.  If
                 the / directory is required, use a leading path of ‘%2F’.  If
                 a user's home directory is required (and  the  remote  server
                 supports  the syntax), use a leading path of ‘%7Euser/’.  For
                 example, to retrieve /etc/motd from ‘localhost’ as  the  user
                 ‘myname’      with     the     password     ‘mypass’,     use
                 ‘ftp://myname:mypass@localhost/%2fetc/motdThe exact cd and get commands can be  controlled  by  careful
                 choice of where to use ‘/’ and where to use ‘%2F’ (or ‘%2f’).
                 For example, the following URLs correspond to the equivalents
                 of the indicated commands:

                 ftp://host/dir1/dir2/file         cd dir1, cd dir2, get file.

                 ftp://host/%2Fdir1/dir2/file      cd   /dir1,  cd  dir2,  get
                                                   file.

                 ftp://host/dir1%2Fdir2/file       cd dir1/dir2, get file.

             You must have appropriate access permission for each  of  the
                 intermediate  directories that is used in the equivalent of a
                 cd command.

       http://[user[:password]@]host[:port]/path
             An  HTTP  URL,  retrieved  using  the  HTTP  protocol.   If   set
             http_proxy  is  defined,  it  is  used  as a URL to an HTTP proxy
             server.  If HTTP authorization is required to retrieve path,  and
             user  (and  optionally  password) is in the URL, use them for the
             first attempt to authenticate.

       https://[user[:password]@]host[:port]/path
             An HTTPS  URL,  retrieved  using  the  HTTPS  protocol.   If  set
             https_proxy  is  defined,  it  is used as a URL to an HTTPS proxy
             server.  If HTTPS authorization is required to retrieve path, and
             user (and optionally password) is in the URL, use  them  for  the
             first attempt to authenticate.  There is currently no certificate
             validation and verification.

       file:///path
             A local URL, copied from /path on the local host.

       about:topic
             Display  information  regarding  topic;  no file is retrieved for
             this auto-fetched element.  Supported values include:

             about:ftp      Information about tnftp.

             about:version  The version of tnftp.  Useful to provide when  re-
                            porting problems.

       Unless  noted  otherwise above, and -o output is not given, the file is
       stored in the current directory as the basename(1) of path.  Note  that
       if a HTTP redirect is received, the fetch is retried using the new tar-
       get  URL  supplied by the server, with a corresponding new path.  Using
       an explicit -o output is recommended, to avoid  writing  to  unexpected
       file names.

       If a classic format or an FTP URL format has a trailing ‘/’ or an empty
       path  component,  then tnftp will connect to the site and cd to the di-
       rectory given as the path, and leave the user in interactive mode ready
       for further input.  This will not work if set ftp_proxy is being used.

       Direct HTTP transfers use HTTP 1.1.  Proxied FTP and HTTP transfers use
       HTTP 1.0.

       If -R is given, all auto-fetches that don't go  via  the  FTP  or  HTTP
       proxies will be restarted.  For FTP, this is implemented by using reget
       instead  of  get.   For  HTTP, this is implemented by using the ‘Range:
       bytes=’ HTTP/1.1 directive.

       If WWW or proxy WWW authentication is required, you will be prompted to
       enter a username and password to authenticate with.

       When specifying IPv6 numeric addresses in a URL, you need  to  surround
       the  address in square brackets.  E.g.: ‘ftp://[::1]:21/’.  This is be-
       cause colons are used in IPv6 numeric address as well as being the sep-
       arator for the port number.

ABORTING A FILE TRANSFER
       To abort a file transfer, use the terminal interrupt key (usually Ctrl-
       C).  Sending transfers will be immediately halted.  Receiving transfers
       will be halted by sending an FTP protocol ABOR command  to  the  remote
       server,  and  discarding any further data received.  The speed at which
       this is accomplished depends upon the remote server's support for  ABOR
       processing.   If  the  remote server does not support the ABOR command,
       the prompt will not appear until the remote server has completed  send-
       ing the requested file.

       If the terminal interrupt key sequence is used whilst tnftp is awaiting
       a  reply  from the remote server for the ABOR processing, then the con-
       nection will be closed.  This is different from the traditional  behav-
       iour  (which  ignores the terminal interrupt during this phase), but is
       considered more useful.

FILE NAMING CONVENTIONS
       Files specified as arguments to tnftp commands are processed  according
       to the following rules.

       1.   If  the  file  name  ‘-’  is specified, the 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.  tnftp then forks
            a shell, using popen(3) with  the  argument  supplied,  and  reads
            (writes)  from  the stdout (stdin).  If the shell command includes
            spaces, the argument must be quoted; e.g.  ‘"| ls -lt"’.   A  par-
            ticularly useful example of this mechanism is: ‘dir "" |more’.

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

       4.   For  mget  commands  and  get commands with unspecified local file
            names, the local filename is the remote filename, which may be al-
            tered by a 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, which may be al-
            tered by a ntrans or nmap setting.   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).   tnftp  sup-
       ports  the ascii and image types of file transfer, plus local byte size
       8 for tenex mode transfers.

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

THE .netrc FILE
       The  .netrc  file contains login and initialization information used by
       the auto-login process.  It resides in the user's home  directory,  un-
       less overridden with the -N netrc option, or specified in the NETRC en-
       vironment  variable.   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 the .netrc file for a machine token that matches the
                 remote  machine  specified on the tnftp command line or as an
                 open command argument.  Once a match is made, the  subsequent
                 .netrc tokens are processed, stopping when the 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 normally used as:

                       default login anonymous password user@site

                 thereby  giving  the user an automatic anonymous FTP login to
                 machines not specified in .netrc.  This can be overridden  by
                 using the -n flag to disable auto-login.

       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
                 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.  Note  that
                 if  this  token  is  present  in the .netrc file for any user
                 other than anonymous, tnftp will abort the auto-login process
                 if the .netrc is readable by anyone besides the user.

       account string
                 Supply an additional account  password.   If  this  token  is
                 present,  the  auto-login  process  will supply the specified
                 string if the remote server requires  an  additional  account
                 password,  or  the  auto-login  process will initiate an ACCT
                 command if it does not.

       macdef name
                 Define a macro.  This token functions like the  tnftp  macdef
                 command  functions.   A  macro  is defined with the specified
                 name; its contents begin with the next .netrc line  and  con-
                 tinue until a blank line (consecutive new-line characters) is
                 encountered.   Like  the  other  tokens in the .netrc file, a
                 macdef is applicable only to the machine definition preceding
                 it.  A macdef entry cannot be used by multiple machine defin-
                 itions; rather, it must be defined following each machine  it
                 is  intended  to  be used with.  If a macro named init is de-
                 fined, it is automatically executed as the last step  in  the
                 auto-login process.  For example,

                       default
                       macdef init
                       epsv4 off

                 followed by a blank line.

COMMAND LINE EDITING
       tnftp  supports  interactive  command line editing, via the editline(3)
       library.  It is enabled with the edit command, and is  enabled  by  de-
       fault  if  input  is  from  a  tty.  Previous lines can be recalled and
       edited with the arrow keys, and other GNU Emacs-style editing keys  may
       be used as well.

       The  editline(3)  library  is configured with a .editrc file — refer to
       editrc(5) for more information.

       An extra key binding is available to tnftp to provide context sensitive
       command and filename completion (including remote file completion).  To
       use this, bind a key to the editline(3) command ftp-complete.   By  de-
       fault, this is bound to the TAB key.

COMMAND LINE PROMPT
       By  default,  tnftp  displays  a  command line prompt of ‘ftp> ’ to the
       user.  This can be changed with the set prompt command.

       A prompt can be displayed on the right side of the  screen  (after  the
       command input) with the set rprompt command.

       The  following  formatting sequences are replaced by the given informa-
       tion:

             %/   The current remote working directory.

             %c[[0]n], %.[[0]n]
                  The trailing component of the current remote working  direc-
                  tory,  or n trailing components if a digit n is given.  If n
                  begins with ‘0’, the number of  skipped  components  precede
                  the  trailing component(s) in the format “/<number>trailing”
                  (for ‘%c’) or “...trailing” (for ‘%.’).

             %M   The remote host name.

             %m   The remote host name, up to the first dot ‘.’.

             %n   The remote user name.

             %%   A single percent character ‘%’.

ENVIRONMENT
       tnftp uses the following environment variables.

       FTPANONPASS    Password to send in an anonymous FTP transfer.  Defaults
                      to “`whoami`@”.

       FTPMODE        Overrides the default operation  mode.   Support  values
                      are:

                      active   active mode FTP only

                      auto     automatic  determination  of  passive or active
                               (this is the default)

                      gate     gate-ftp mode

                      passive  passive mode FTP only

       FTPPROMPT      Command-line prompt to use.  Defaults to ‘ftp> ’.  Refer
                      to “COMMAND LINE PROMPT” for more information.

       FTPRPROMPT     Command-line right side  prompt  to  use.   Defaults  to
                      empty  string.   Refer to “COMMAND LINE PROMPT” for more
                      information.

       FTPSERVER      Host to use as gate-ftp server when gate is enabled.

       FTPSERVERPORT  Port to use when connecting to gate-ftp server when gate
                      is   enabled.    Default   is   port   returned   by   a
                      getservbyname(3) lookup of “ftpgate/tcp”.

       FTPUSERAGENT   The value to send for the HTTP User-Agent header.

       FTPSSLNOVERIFY
                      Set to 1 to not verify SSL certificates.

       HOME           For default location of a .netrc file, if one exists.

       NETRC          An alternate location of the .netrc file.

       PAGER          Used  by various commands to display files.  Defaults to
                      more(1) if empty or not set.

       SHELL          For default shell.

       ftp_proxy      URL of FTP proxy to use when making FTP URL requests (if
                      not defined, use the standard FTP protocol).

                      See http_proxy for further notes about proxy use.

       http_proxy     URL of HTTP proxy to use when making HTTP URL  requests.
                      If proxy authentication is required and there is a user-
                      name  and  password in this URL, they will automatically
                      be used in the first  attempt  to  authenticate  to  the
                      proxy.

                      If  “unsafe” URL characters are required in the username
                      or password (for example ‘@’ or ‘/’), encode  them  with
                      RFC 3986 ‘%XX’ encoding.

                      Note  that  the  use  of  a  username  and  password  in
                      ftp_proxy and http_proxy may be incompatible with  other
                      programs that use it (such as lynx(1)).

                      NOTE:  this  is  not used for interactive sessions, only
                      for command-line fetches.

       https_proxy    URL of HTTPS proxy to use  when  making  HTTPS  URL  re-
                      quests.

                      See http_proxy for further notes about proxy use.

       no_proxy       A  space  or  comma separated list of hosts (or domains)
                      for which proxying is not to be used.   Each  entry  may
                      have  an  optional trailing ‘:port’, which restricts the
                      matching to connections to that port.

EXTENDED PASSIVE MODE AND FIREWALLS
       Some firewall configurations do not allow tnftp to use extended passive
       mode.  If you find that even a simple ls appears to hang after printing
       a message such as this:

             229 Entering Extended Passive Mode (|||58551|)

       then you will need to disable extended passive  mode  with  epsv4  off.
       See  the  above section “The .netrc File” for an example of how to make
       this automatic.

SEE ALSO
       getservbyname(3), editrc(5), services(5), ftpd(8)

STANDARDS
       tnftp attempts to be compliant with:

             RFC 959   File Transfer Protocol

             RFC 1123  Requirements  for  Internet  Hosts  -  Application  and
                       Support

             RFC 1635  How to Use Anonymous FTP

             RFC 2389  Feature  negotiation  mechanism  for  the File Transfer
                       Protocol

             RFC 2428  FTP Extensions for IPv6 and NATs

             RFC 2616  Hypertext Transfer Protocol -- HTTP/1.1

             RFC 2822  Internet Message Format

             RFC 3659  Extensions to FTP

             RFC 3986  Uniform Resource Identifier (URI)

HISTORY
       The tnftp command appeared in 4.2BSD.

       Various features such as command line editing, context  sensitive  com-
       mand  and  file completion, dynamic progress bar, automatic fetching of
       files and URLs, modification time preservation,  transfer  rate  throt-
       tling,  configurable  command  line prompt, and other enhancements over
       the standard BSD tnftp were implemented in NetBSD  1.3  and  later  re-
       leases by Luke Mewburn ⟨lukem@NetBSD.org⟩.

       IPv6 support was added by the WIDE/KAME project (but may not be present
       in  all non-NetBSD versions of this program, depending if the operating
       system supports IPv6 in a similar manner to KAME).

BUGS
       Correct execution of many commands depends upon proper behavior by  the
       remote server.

       An  error in the treatment of carriage returns in the 4.2BSD ascii-mode
       transfer code has been corrected.  This correction may result in incor-
       rect transfers of binary files to and from  4.2BSD  servers  using  the
       ascii type.  Avoid this problem by using the binary image type.

       tnftp  assumes  that  all  IPv4 mapped addresses (IPv6 addresses with a
       form like ::ffff:10.1.1.1) indicate IPv4 destinations which can be han-
       dled by AF_INET sockets.  However, in certain IPv6  network  configura-
       tions,  this  assumption  is  not  true.   In such an environment, IPv4
       mapped addresses must be passed to AF_INET6 sockets directly.  For  ex-
       ample,  if  your  site uses a SIIT translator for IPv6-to-IPv4 transla-
       tion, tnftp is unable to support your configuration.

Debian                         February 25, 2023                      TNFTP(1)

Generated by dwww version 1.16 on Tue Dec 16 06:24:33 CET 2025.