webdump_tests

Testfiles for webdump
git clone git://git.codemadness.org/webdump_tests
Log | Files | Refs | README

openbsd_man_ftp.html (83176B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4   <meta charset="UTF-8"/>
      5   <meta name="viewport" content="width=device-width, initial-scale=1.0">
      6   <link rel="stylesheet" href="/mandoc.css" type="text/css" media="all">
      7   <title>ftp(1) - OpenBSD manual pages</title>
      8 </head>
      9 <body>
     10 <header>
     11 <section>
     12 <h1><a href="https://www.openbsd.org/">OpenBSD</a> manual page server</h1>
     13 </section>
     14 <form role="search" action="/" method="get" autocomplete="off" autocapitalize="none">
     15   <fieldset>
     16     <legend>Manual Page Search Parameters</legend>
     17     <label>Search query:
     18       <input type="search" name="query" value="ftp" size="40">
     19     </label>
     20     <button type="submit" name="apropos" value="0">man</button>
     21     <button type="submit" name="apropos" value="1">apropos</button>
     22     <br/>
     23     <select name="sec" aria-label="Manual section">
     24       <option value="0">All Sections</option>
     25       <option value="1">1 - General Commands</option>
     26       <option value="2">2 - System Calls</option>
     27       <option value="3">3 - Library Functions</option>
     28       <option value="3p">3p - Perl Library</option>
     29       <option value="4">4 - Device Drivers</option>
     30       <option value="5">5 - File Formats</option>
     31       <option value="6">6 - Games</option>
     32       <option value="7">7 - Miscellaneous Information</option>
     33       <option value="8">8 - System Manager's Manual</option>
     34       <option value="9">9 - Kernel Developer's Manual</option>
     35     </select>
     36     <select name="arch" aria-label="CPU architecture">
     37       <option value="default" selected="selected">All Architectures</option>
     38       <option>amd64</option>
     39       <option>alpha</option>
     40       <option>armv7</option>
     41       <option>arm64</option>
     42       <option>hppa</option>
     43       <option>i386</option>
     44       <option>landisk</option>
     45       <option>loongson</option>
     46       <option>luna88k</option>
     47       <option>macppc</option>
     48       <option>mips64</option>
     49       <option>octeon</option>
     50       <option>powerpc64</option>
     51       <option>riscv64</option>
     52       <option>sparc64</option>
     53       <option>amiga</option>
     54       <option>arc</option>
     55       <option>armish</option>
     56       <option>arm32</option>
     57       <option>atari</option>
     58       <option>aviion</option>
     59       <option>beagle</option>
     60       <option>cats</option>
     61       <option>hppa64</option>
     62       <option>hp300</option>
     63       <option>ia64</option>
     64       <option>mac68k</option>
     65       <option>mvme68k</option>
     66       <option>mvme88k</option>
     67       <option>mvmeppc</option>
     68       <option>palm</option>
     69       <option>pc532</option>
     70       <option>pegasos</option>
     71       <option>pmax</option>
     72       <option>powerpc</option>
     73       <option>sgi</option>
     74       <option>socppc</option>
     75       <option>solbourne</option>
     76       <option>sparc</option>
     77       <option>sun3</option>
     78       <option>vax</option>
     79       <option>wgrisc</option>
     80       <option>x68k</option>
     81       <option>zaurus</option>
     82     </select>
     83     <select name="manpath" aria-label="Manual path">
     84       <option selected="selected">OpenBSD-current</option>
     85       <option>OpenBSD-7.2</option>
     86       <option>OpenBSD-7.1</option>
     87       <option>OpenBSD-7.0</option>
     88       <option>OpenBSD-6.9</option>
     89       <option>OpenBSD-6.8</option>
     90       <option>OpenBSD-6.7</option>
     91       <option>OpenBSD-6.6</option>
     92       <option>OpenBSD-6.5</option>
     93       <option>OpenBSD-6.4</option>
     94       <option>OpenBSD-6.3</option>
     95       <option>OpenBSD-6.2</option>
     96       <option>OpenBSD-6.1</option>
     97       <option>OpenBSD-6.0</option>
     98       <option>OpenBSD-5.9</option>
     99       <option>OpenBSD-5.8</option>
    100       <option>OpenBSD-5.7</option>
    101       <option>OpenBSD-5.6</option>
    102       <option>OpenBSD-5.5</option>
    103       <option>OpenBSD-5.4</option>
    104       <option>OpenBSD-5.3</option>
    105       <option>OpenBSD-5.2</option>
    106       <option>OpenBSD-5.1</option>
    107       <option>OpenBSD-5.0</option>
    108       <option>OpenBSD-4.9</option>
    109       <option>OpenBSD-4.8</option>
    110       <option>OpenBSD-4.7</option>
    111       <option>OpenBSD-4.6</option>
    112       <option>OpenBSD-4.5</option>
    113       <option>OpenBSD-4.4</option>
    114       <option>OpenBSD-4.3</option>
    115       <option>OpenBSD-4.2</option>
    116       <option>OpenBSD-4.1</option>
    117       <option>OpenBSD-4.0</option>
    118       <option>OpenBSD-3.9</option>
    119       <option>OpenBSD-3.8</option>
    120       <option>OpenBSD-3.7</option>
    121       <option>OpenBSD-3.6</option>
    122       <option>OpenBSD-3.5</option>
    123       <option>OpenBSD-3.4</option>
    124       <option>OpenBSD-3.3</option>
    125       <option>OpenBSD-3.2</option>
    126       <option>OpenBSD-3.1</option>
    127       <option>OpenBSD-3.0</option>
    128       <option>OpenBSD-2.9</option>
    129       <option>OpenBSD-2.8</option>
    130       <option>OpenBSD-2.7</option>
    131       <option>OpenBSD-2.6</option>
    132       <option>OpenBSD-2.5</option>
    133       <option>OpenBSD-2.4</option>
    134       <option>OpenBSD-2.3</option>
    135       <option>OpenBSD-2.2</option>
    136     </select>
    137   </fieldset>
    138 </form>
    139 </header>
    140 <hr>
    141 <div class="head" role="doc-pageheader" aria-label="Manual header
    142   line"><span class="head-ltitle">FTP(1)</span> <span class="head-vol">General
    143   Commands Manual</span> <span class="head-rtitle">FTP(1)</span></div>
    144 <main class="manual-text">
    145 <section class="Sh">
    146 <h2 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h2>
    147 <p class="Pp"><code class="Nm">ftp</code> &#x2014;
    148     <span class="Nd" role="doc-subtitle">Internet file transfer
    149   program</span></p>
    150 </section>
    151 <section class="Sh">
    152 <h2 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h2>
    153 <table class="Nm">
    154   <tr>
    155     <td><code class="Nm">ftp</code></td>
    156     <td>[<code class="Fl">-46AadEegiMmnptVv</code>] [<code class="Fl">-D</code>
    157       <var class="Ar">title</var>] [<code class="Fl">-k</code>
    158       <var class="Ar">seconds</var>] [<code class="Fl">-P</code>
    159       <var class="Ar">port</var>] [<code class="Fl">-r</code>
    160       <var class="Ar">seconds</var>] [<code class="Fl">-s</code>
    161       <var class="Ar">sourceaddr</var>] [<var class="Ar">host</var>
    162       [<var class="Ar">port</var>]]</td>
    163   </tr>
    164 </table>
    165 <br/>
    166 <table class="Nm">
    167   <tr>
    168     <td><code class="Nm">ftp</code></td>
    169     <td>[<code class="Fl">-C</code>] [<code class="Fl">-N</code>
    170       <var class="Ar">name</var>] [<code class="Fl">-o</code>
    171       <var class="Ar">output</var>] [<code class="Fl">-s</code>
    172       <var class="Ar">sourceaddr</var>]
    173       ftp://[<var class="Ar">user</var>:<var class="Ar">password</var><span class="No">@</span>]<var class="Ar">host</var>[:<var class="Ar">port</var>]<span class="No">/</span><var class="Ar">file</var>[/]
    174       <var class="Ar">...</var></td>
    175   </tr>
    176 </table>
    177 <br/>
    178 <table class="Nm">
    179   <tr>
    180     <td><code class="Nm">ftp</code></td>
    181     <td>[<code class="Fl">-CTu</code>] [<code class="Fl">-c</code>
    182       <var class="Ar">cookie</var>] [<code class="Fl">-N</code>
    183       <var class="Ar">name</var>] [<code class="Fl">-o</code>
    184       <var class="Ar">output</var>] [<code class="Fl">-S</code>
    185       <var class="Ar">ssl_options</var>] [<code class="Fl">-s</code>
    186       <var class="Ar">sourceaddr</var>] [<code class="Fl">-U</code>
    187       <var class="Ar">useragent</var>] [<code class="Fl">-w</code>
    188       <var class="Ar">seconds</var>]
    189       http[s]://[<var class="Ar">user</var>:<var class="Ar">password</var><span class="No">@</span>]<var class="Ar">host</var>[:<var class="Ar">port</var>]<span class="No">/</span><var class="Ar">file</var>
    190       <var class="Ar">...</var></td>
    191   </tr>
    192 </table>
    193 <br/>
    194 <table class="Nm">
    195   <tr>
    196     <td><code class="Nm">ftp</code></td>
    197     <td>[<code class="Fl">-C</code>] [<code class="Fl">-N</code>
    198       <var class="Ar">name</var>] [<code class="Fl">-o</code>
    199       <var class="Ar">output</var>] [<code class="Fl">-s</code>
    200       <var class="Ar">sourceaddr</var>] file:<var class="Ar">file ...</var></td>
    201   </tr>
    202 </table>
    203 <br/>
    204 <table class="Nm">
    205   <tr>
    206     <td><code class="Nm">ftp</code></td>
    207     <td>[<code class="Fl">-C</code>] [<code class="Fl">-N</code>
    208       <var class="Ar">name</var>] [<code class="Fl">-o</code>
    209       <var class="Ar">output</var>] [<code class="Fl">-s</code>
    210       <var class="Ar">sourceaddr</var>]
    211       <var class="Ar">host</var>:/<var class="Ar">file</var>[/]
    212       <var class="Ar">...</var></td>
    213   </tr>
    214 </table>
    215 </section>
    216 <section class="Sh">
    217 <h2 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h2>
    218 <p class="Pp"><code class="Nm">ftp</code> is the user interface to the Internet
    219     standard File Transfer Protocol (FTP). The program allows a user to transfer
    220     files to and from a remote network site.</p>
    221 <p class="Pp">The latter four usage formats will fetch a file using either the
    222     FTP, HTTP, or HTTPS protocols into the current directory. This is ideal for
    223     scripts. Refer to <a class="Sx" href="#AUTO_FETCHING_FILES">AUTO-FETCHING
    224     FILES</a> below for more information.</p>
    225 <p class="Pp">The options are as follows:</p>
    226 <dl class="Bl-tag">
    227   <dt id="4"><a class="permalink" href="#4"><code class="Fl">-4</code></a></dt>
    228   <dd>Forces <code class="Nm">ftp</code> to use IPv4 addresses only.</dd>
    229   <dt id="6"><a class="permalink" href="#6"><code class="Fl">-6</code></a></dt>
    230   <dd>Forces <code class="Nm">ftp</code> to use IPv6 addresses only.</dd>
    231   <dt id="A"><a class="permalink" href="#A"><code class="Fl">-A</code></a></dt>
    232   <dd>Force active mode FTP. By default, <code class="Nm">ftp</code> will try to
    233       use passive mode FTP and fall back to active mode if passive is not
    234       supported by the server. This option causes <code class="Nm">ftp</code> to
    235       always use an active connection. It is only useful for connecting to very
    236       old servers that do not implement passive mode properly.</dd>
    237   <dt id="a"><a class="permalink" href="#a"><code class="Fl">-a</code></a></dt>
    238   <dd>Causes <code class="Nm">ftp</code> to bypass the normal login procedure
    239       and use an anonymous login instead.</dd>
    240   <dt id="C"><a class="permalink" href="#C"><code class="Fl">-C</code></a></dt>
    241   <dd>Continue a previously interrupted file transfer.
    242       <code class="Nm">ftp</code> will continue transferring from an offset
    243       equal to the length of <var class="Ar">file</var>.
    244     <p class="Pp">Resuming HTTP(S) transfers are only supported if the remote
    245         server supports the &#x201C;Range&#x201D; header.</p>
    246   </dd>
    247   <dt id="c"><a class="permalink" href="#c"><code class="Fl">-c</code></a>
    248     <var class="Ar">cookie</var></dt>
    249   <dd>Load a Netscape-like cookiejar file for HTTP and HTTPS transfers. With
    250       this option relevant cookies from the jar are sent with each HTTP(S)
    251       request. Setting the <code class="Ev">http_cookies</code> environment
    252       variable has the same effect. If both the
    253       <code class="Ev">http_cookies</code> environment variable is set and the
    254       <code class="Fl">-c</code> argument is given, the latter takes
    255     precedence.</dd>
    256   <dt id="D"><a class="permalink" href="#D"><code class="Fl">-D</code></a>
    257     <var class="Ar">title</var></dt>
    258   <dd>Specify a short <var class="Ar">title</var> for the start of the progress
    259       bar.</dd>
    260   <dt id="d"><a class="permalink" href="#d"><code class="Fl">-d</code></a></dt>
    261   <dd>Enables debugging.</dd>
    262   <dt id="E"><a class="permalink" href="#E"><code class="Fl">-E</code></a></dt>
    263   <dd>Disables EPSV/EPRT command on IPv4 connections.</dd>
    264   <dt id="e"><a class="permalink" href="#e"><code class="Fl">-e</code></a></dt>
    265   <dd>Disables command line editing. Useful for Emacs ange-ftp.</dd>
    266   <dt id="g"><a class="permalink" href="#g"><code class="Fl">-g</code></a></dt>
    267   <dd>Disables file name globbing.</dd>
    268   <dt id="i"><a class="permalink" href="#i"><code class="Fl">-i</code></a></dt>
    269   <dd>Turns off interactive prompting during multiple file transfers.</dd>
    270   <dt id="k"><a class="permalink" href="#k"><code class="Fl">-k</code></a>
    271     <var class="Ar">seconds</var></dt>
    272   <dd>When greater than zero, sends a byte after each
    273       <var class="Ar">seconds</var> period over the control connection during
    274       long transfers, so that incorrectly configured network equipment won't
    275       aggressively drop it. The FTP protocol supports a
    276       <code class="Dv">NOOP</code> command that can be used for that purpose.
    277       This assumes the FTP server can deal with extra commands coming over the
    278       control connection during a transfer. Well-behaved servers queue those
    279       commands, and process them after the transfer. By default,
    280       <code class="Nm">ftp</code> will send a byte every 60 seconds.</dd>
    281   <dt id="M"><a class="permalink" href="#M"><code class="Fl">-M</code></a></dt>
    282   <dd>Causes <code class="Nm">ftp</code> to never display the progress meter in
    283       cases where it would do so by default.</dd>
    284   <dt id="m"><a class="permalink" href="#m"><code class="Fl">-m</code></a></dt>
    285   <dd>Causes <code class="Nm">ftp</code> to always display the progress meter in
    286       cases where it would not do so by default.</dd>
    287   <dt id="N"><a class="permalink" href="#N"><code class="Fl">-N</code></a>
    288     <var class="Ar">name</var></dt>
    289   <dd>Use this alternative name instead of <code class="Nm">ftp</code> in some
    290       error reports.</dd>
    291   <dt id="n"><a class="permalink" href="#n"><code class="Fl">-n</code></a></dt>
    292   <dd>Restrains <code class="Nm">ftp</code> from attempting
    293       &#x201C;auto-login&#x201D; upon initial connection. If auto-login is
    294       enabled, <code class="Nm">ftp</code> will check the
    295       <span class="Pa">.netrc</span> file (see below) in the user's home
    296       directory for an entry describing an account on the remote machine. If no
    297       entry exists, <code class="Nm">ftp</code> will prompt for the remote
    298       machine login name (default is the user identity on the local machine)
    299       and, if necessary, prompt for a password and an account with which to log
    300       in.</dd>
    301   <dt id="o"><a class="permalink" href="#o"><code class="Fl">-o</code></a>
    302     <var class="Ar">output</var></dt>
    303   <dd>When fetching a single file or URL, save the contents in
    304       <var class="Ar">output</var>. To make the contents go to stdout, use
    305       &#x2018;-&#x2019; for <var class="Ar">output</var>.</dd>
    306   <dt id="P"><a class="permalink" href="#P"><code class="Fl">-P</code></a>
    307     <var class="Ar">port</var></dt>
    308   <dd>Sets the port number to <var class="Ar">port</var>.</dd>
    309   <dt id="p"><a class="permalink" href="#p"><code class="Fl">-p</code></a></dt>
    310   <dd>Enable passive mode operation for use behind connection filtering
    311       firewalls. This option has been deprecated as <code class="Nm">ftp</code>
    312       now tries to use passive mode by default, falling back to active mode if
    313       the server does not support passive connections.</dd>
    314   <dt id="r"><a class="permalink" href="#r"><code class="Fl">-r</code></a>
    315     <var class="Ar">seconds</var></dt>
    316   <dd>Retry to connect if failed, pausing for number of
    317       <var class="Ar">seconds</var>.</dd>
    318   <dt id="S"><a class="permalink" href="#S"><code class="Fl">-S</code></a>
    319     <var class="Ar">ssl_options</var></dt>
    320   <dd>SSL/TLS options to use with HTTPS transfers. The following settings are
    321       available:
    322     <dl class="Bl-tag">
    323       <dt id="cafile"><a class="permalink" href="#cafile"><code class="Cm">cafile</code></a>=<var class="Ar">/path/to/cert.pem</var></dt>
    324       <dd>PEM encoded file containing CA certificates used for certificate
    325           validation.</dd>
    326       <dt id="capath"><a class="permalink" href="#capath"><code class="Cm">capath</code></a>=<var class="Ar">/path/to/certs/</var></dt>
    327       <dd>Directory containing PEM encoded CA certificates used for certificate
    328           validation. Such a directory can be prepared using the c_rehash script
    329           distributed with OpenSSL.</dd>
    330       <dt id="ciphers"><a class="permalink" href="#ciphers"><code class="Cm">ciphers</code></a>=<var class="Ar">cipher_list</var></dt>
    331       <dd>Specify the list of ciphers that will be used by
    332           <code class="Nm">ftp</code>. See the
    333           <a class="Xr" href="/openssl.1" aria-label="openssl, section
    334           1">openssl(1)</a> <code class="Cm">ciphers</code> subcommand.</dd>
    335       <dt id="depth"><a class="permalink" href="#depth"><code class="Cm">depth</code></a>=<var class="Ar">max_depth</var></dt>
    336       <dd>Maximum depth of the certificate chain allowed when performing
    337           validation.</dd>
    338       <dt id="do"><a class="permalink" href="#do"><code class="Cm">do</code></a></dt>
    339       <dd>Perform server certificate validation.</dd>
    340       <dt id="dont"><a class="permalink" href="#dont"><code class="Cm">dont</code></a></dt>
    341       <dd>Don't perform server certificate validation.</dd>
    342       <dt id="muststaple"><a class="permalink" href="#muststaple"><code class="Cm">muststaple</code></a></dt>
    343       <dd>Require the server to present a valid OCSP stapling in the TLS
    344           handshake.</dd>
    345       <dt id="noverifytime"><a class="permalink" href="#noverifytime"><code class="Cm">noverifytime</code></a></dt>
    346       <dd>Disable validation of certificate times and OCSP validation.</dd>
    347       <dt id="protocols"><a class="permalink" href="#protocols"><code class="Cm">protocols</code></a>=<var class="Ar">protocol_list</var></dt>
    348       <dd>Specify the TLS protocols that will be supported by
    349           <code class="Nm">ftp</code> (see
    350           <a class="Xr" href="/tls_config_parse_protocols.3" aria-label="tls_config_parse_protocols,
    351           section 3">tls_config_parse_protocols(3)</a> for details).</dd>
    352       <dt id="session"><a class="permalink" href="#session"><code class="Cm">session</code></a>=<var class="Ar">/path/to/session</var></dt>
    353       <dd>Specify a file to use for TLS session data. If this file has a
    354           non-zero length, the session data will be read from this file and the
    355           client will attempt to resume the TLS session with the server. Upon
    356           completion of a successful TLS handshake this file will be updated
    357           with new session data, if available. This file will be created if it
    358           does not already exist.</dd>
    359     </dl>
    360     <p class="Pp">By default, server certificate validation is performed, and if
    361         it fails <code class="Nm">ftp</code> will abort. If no
    362         <code class="Cm">cafile</code> or <code class="Cm">capath</code> setting
    363         is provided, <span class="Pa">/etc/ssl/cert.pem</span> will be used.</p>
    364   </dd>
    365   <dt id="s"><a class="permalink" href="#s"><code class="Fl">-s</code></a>
    366     <var class="Ar">sourceaddr</var></dt>
    367   <dd>Set the source address for connections, which is useful on machines with
    368       multiple interfaces.</dd>
    369   <dt id="T"><a class="permalink" href="#T"><code class="Fl">-T</code></a></dt>
    370   <dd>Send an &#x201C;If-Modified-Since&#x201D; header to the remote to
    371       determine if the remote file's timestamp has changed.</dd>
    372   <dt id="t"><a class="permalink" href="#t"><code class="Fl">-t</code></a></dt>
    373   <dd>Enables packet tracing.</dd>
    374   <dt id="U"><a class="permalink" href="#U"><code class="Fl">-U</code></a>
    375     <var class="Ar">useragent</var></dt>
    376   <dd>Set <var class="Ar">useragent</var> as the User-Agent for HTTP(S) URL
    377       requests. If not specified, the default User-Agent is &#x201C;OpenBSD
    378       ftp&#x201D;.</dd>
    379   <dt id="u"><a class="permalink" href="#u"><code class="Fl">-u</code></a></dt>
    380   <dd>Disable setting the local file's timestamps based on the
    381       &#x201C;Last-Modified&#x201D; header. By default the local file's
    382       timestamps are set to match those from the remote.</dd>
    383   <dt id="V"><a class="permalink" href="#V"><code class="Fl">-V</code></a></dt>
    384   <dd>Disable verbose mode, overriding the default of enabled when input is from
    385       a terminal.</dd>
    386   <dt id="v"><a class="permalink" href="#v"><code class="Fl">-v</code></a></dt>
    387   <dd>Enable verbose mode. This is the default if input is from a terminal.
    388       Forces <code class="Nm">ftp</code> to show all responses from the remote
    389       server, as well as report on data transfer statistics.</dd>
    390   <dt id="w"><a class="permalink" href="#w"><code class="Fl">-w</code></a>
    391     <var class="Ar">seconds</var></dt>
    392   <dd>Wait for <var class="Ar">seconds</var> for the remote server to connect
    393       before giving up.</dd>
    394 </dl>
    395 <p class="Pp">The host with which <code class="Nm">ftp</code> is to communicate
    396     may be specified on the command line. If this is done,
    397     <code class="Nm">ftp</code> will immediately attempt to establish a
    398     connection to an FTP server on that host; otherwise,
    399     <code class="Nm">ftp</code> will enter its command interpreter and await
    400     instructions from the user. When <code class="Nm">ftp</code> is awaiting
    401     commands, the prompt &#x201C;ftp&gt;&#x201D; is provided to the user. The
    402     following commands are recognized by <code class="Nm">ftp</code>:</p>
    403 <dl class="Bl-tag">
    404   <dt id="!"><a class="permalink" href="#!"><code class="Ic">!</code></a>
    405     [<var class="Ar">command</var> [<var class="Ar">arg ...</var>]]</dt>
    406   <dd>Invoke an interactive shell on the local machine. If there are arguments,
    407       the first is taken to be a command to execute directly, with the rest of
    408       the arguments as its arguments.</dd>
    409   <dt id="$"><a class="permalink" href="#$"><code class="Ic">$</code></a>
    410     <var class="Ar">macro-name</var> [<var class="Ar">arg ...</var>]</dt>
    411   <dd>Execute the macro <var class="Ar">macro-name</var> that was defined with
    412       the <code class="Ic">macdef</code> command. Arguments are passed to the
    413       macro unglobbed.</dd>
    414   <dt id="?"><a class="permalink" href="#?"><code class="Ic">?</code></a>
    415     [<var class="Ar">command</var>]</dt>
    416   <dd>A synonym for <code class="Ic">help</code>.</dd>
    417   <dt id="account"><a class="permalink" href="#account"><code class="Ic">account</code></a>
    418     [<var class="Ar">password</var>]</dt>
    419   <dd>Supply a supplemental password required by a remote system for access to
    420       resources once a login has been successfully completed. If no argument is
    421       included, the user will be prompted for an account password in a
    422       non-echoing input mode.</dd>
    423   <dt id="append"><a class="permalink" href="#append"><code class="Ic">append</code></a>
    424     <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
    425   <dd>Append a local file to a file on the remote machine. If
    426       <var class="Ar">remote-file</var> is left unspecified, the local file name
    427       is used in naming the remote file after being altered by any
    428       <code class="Ic">ntrans</code> or <code class="Ic">nmap</code> setting.
    429       File transfer uses the current settings for <code class="Ic">type</code>,
    430       <code class="Ic">format</code>, <code class="Ic">mode</code>, and
    431       <code class="Ic">structure</code>.</dd>
    432   <dt id="ascii"><a class="permalink" href="#ascii"><code class="Ic">ascii</code></a></dt>
    433   <dd>Set the file transfer <code class="Ic">type</code> to network ASCII.</dd>
    434   <dt id="bell"><a class="permalink" href="#bell"><code class="Ic">bell</code></a>
    435     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    436   <dd>Arrange that a bell be sounded after each file transfer command is
    437       completed.</dd>
    438   <dt id="binary"><a class="permalink" href="#binary"><code class="Ic">binary</code></a></dt>
    439   <dd>Set the file transfer <code class="Ic">type</code> to support binary image
    440       transfer. This is the default type.</dd>
    441   <dt id="bye"><a class="permalink" href="#bye"><code class="Ic">bye</code></a></dt>
    442   <dd>Terminate the FTP session with the remote server and exit
    443       <code class="Nm">ftp</code>. An end-of-file will also terminate the
    444       session and exit.</dd>
    445   <dt id="case"><a class="permalink" href="#case"><code class="Ic">case</code></a>
    446     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    447   <dd>Toggle remote computer file name case mapping during
    448       <code class="Ic">mget</code> commands. When <code class="Ic">case</code>
    449       is on (default is off), remote computer file names with all letters in
    450       upper case are written in the local directory with the letters mapped to
    451       lower case.</dd>
    452   <dt id="cd"><a class="permalink" href="#cd"><code class="Ic">cd</code></a>
    453     <var class="Ar">remote-directory</var></dt>
    454   <dd>Change the working directory on the remote machine to
    455       <var class="Ar">remote-directory</var>.</dd>
    456   <dt id="cdup"><a class="permalink" href="#cdup"><code class="Ic">cdup</code></a></dt>
    457   <dd>Change the remote machine working directory to the parent of the current
    458       remote machine working directory.</dd>
    459   <dt id="chmod"><a class="permalink" href="#chmod"><code class="Ic">chmod</code></a>
    460     <var class="Ar">mode file</var></dt>
    461   <dd>Change the permission modes of <var class="Ar">file</var> on the remote
    462       system to <var class="Ar">mode</var>.</dd>
    463   <dt id="close"><a class="permalink" href="#close"><code class="Ic">close</code></a></dt>
    464   <dd>Terminate the FTP session with the remote server and return to the command
    465       interpreter. Any defined macros are erased.</dd>
    466   <dt id="cr"><a class="permalink" href="#cr"><code class="Ic">cr</code></a>
    467     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    468   <dd>Toggle carriage return stripping during ASCII type file retrieval. Records
    469       are denoted by a carriage return/linefeed sequence during ASCII type file
    470       transfer. When <code class="Ic">cr</code> is on (the default), carriage
    471       returns are stripped from this sequence to conform with the
    472       <span class="Ux">UNIX</span> single linefeed record delimiter. Records on
    473       non-UNIX remote systems may contain single linefeeds; when an ASCII type
    474       transfer is made, these linefeeds may be distinguished from a record
    475       delimiter only when <code class="Ic">cr</code> is off.</dd>
    476   <dt id="debug"><a class="permalink" href="#debug"><code class="Ic">debug</code></a>
    477     [<code class="Ic">on</code> | <code class="Ic">off</code> |
    478     <var class="Ar">debuglevel</var>]</dt>
    479   <dd>Toggle debugging mode. If an optional <var class="Ar">debuglevel</var> is
    480       specified, it is used to set the debugging level. When debugging is on,
    481       <code class="Nm">ftp</code> prints each command sent to the remote
    482       machine, preceded by the string
    483       &#x2018;<code class="Li">--&gt;</code>&#x2019;.</dd>
    484   <dt id="delete"><a class="permalink" href="#delete"><code class="Ic">delete</code></a>
    485     <var class="Ar">remote-file</var></dt>
    486   <dd>Delete the file <var class="Ar">remote-file</var> on the remote
    487     machine.</dd>
    488   <dt id="dir"><a class="permalink" href="#dir"><code class="Ic">dir</code></a>
    489     [<var class="Ar">remote-directory</var>
    490     [<var class="Ar">local-file</var>]]</dt>
    491   <dd>A synonym for <code class="Ic">ls</code>.</dd>
    492   <dt id="disconnect"><a class="permalink" href="#disconnect"><code class="Ic">disconnect</code></a></dt>
    493   <dd>A synonym for <code class="Ic">close</code>.</dd>
    494   <dt id="edit"><a class="permalink" href="#edit"><code class="Ic">edit</code></a>
    495     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    496   <dd>Toggle command line editing, and context sensitive command and file
    497       completion. This is automatically enabled if input is from a terminal, and
    498       disabled otherwise.</dd>
    499   <dt id="epsv4"><a class="permalink" href="#epsv4"><code class="Ic">epsv4</code></a>
    500     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    501   <dd>Toggle use of EPSV/EPRT command on IPv4 connection.</dd>
    502   <dt id="exit"><a class="permalink" href="#exit"><code class="Ic">exit</code></a></dt>
    503   <dd>A synonym for <code class="Ic">bye</code>.</dd>
    504   <dt id="form"><a class="permalink" href="#form"><code class="Ic">form</code></a>
    505     <var class="Ar">format</var></dt>
    506   <dd>Set the file transfer <code class="Ic">form</code> to
    507       <var class="Ar">format</var>. The default format is
    508     &#x201C;file&#x201D;.</dd>
    509   <dt id="ftp"><a class="permalink" href="#ftp"><code class="Ic">ftp</code></a>
    510     <var class="Ar">host</var> [<var class="Ar">port</var>]</dt>
    511   <dd>A synonym for <code class="Ic">open</code>.</dd>
    512   <dt id="gate"><a class="permalink" href="#gate"><code class="Ic">gate</code></a>
    513     [<code class="Ic">on</code> | <code class="Ic">off</code> |
    514     <var class="Ar">host</var> [<var class="Ar">port</var>]]</dt>
    515   <dd>Toggle gate-ftp mode. This will not be permitted if the gate-ftp server
    516       hasn't been set (either explicitly by the user, or from the
    517       <code class="Ev">FTPSERVER</code> environment variable). If
    518       <var class="Ar">host</var> is given, then gate-ftp mode will be enabled,
    519       and the gate-ftp server will be set to <var class="Ar">host</var>. If
    520       <var class="Ar">port</var> is also given, that will be used as the port to
    521       connect to on the gate-ftp server.</dd>
    522   <dt id="get"><a class="permalink" href="#get"><code class="Ic">get</code></a>
    523     <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
    524   <dd>Retrieve the <var class="Ar">remote-file</var> and store it on the local
    525       machine. If the local file name is not specified, it is given the same
    526       name it has on the remote machine, subject to alteration by the current
    527       <code class="Ic">case</code>, <code class="Ic">ntrans</code>, and
    528       <code class="Ic">nmap</code> settings. The current settings for
    529       <code class="Ic">type</code>, <code class="Ic">form</code>,
    530       <code class="Ic">mode</code>, and <code class="Ic">structure</code> are
    531       used while transferring the file.</dd>
    532   <dt id="glob"><a class="permalink" href="#glob"><code class="Ic">glob</code></a>
    533     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    534   <dd>Toggle filename expansion for <code class="Ic">mdelete</code>,
    535       <code class="Ic">mget</code> and <code class="Ic">mput</code>. If globbing
    536       is turned off with <code class="Ic">glob</code>, the file name arguments
    537       are taken literally and not expanded. Globbing for
    538       <code class="Ic">mput</code> is done as in
    539       <a class="Xr" href="/csh.1" aria-label="csh, section 1">csh(1)</a>. For
    540       <code class="Ic">mdelete</code> and <code class="Ic">mget</code>, each
    541       remote file name is expanded separately on the remote machine and the
    542       lists are not merged. Expansion of a directory name is likely to be
    543       different from expansion of the name of an ordinary file: the exact result
    544       depends on the foreign operating system and FTP server, and can be
    545       previewed by doing &#x201C;mls remote-files -&#x201D;. Note:
    546       <code class="Ic">mget</code> and <code class="Ic">mput</code> are not
    547       meant to transfer entire directory subtrees of files. That can be done by
    548       transferring a <a class="Xr" href="/tar.1" aria-label="tar, section
    549       1">tar(1)</a> archive of the subtree (in binary mode).</dd>
    550   <dt id="hash"><a class="permalink" href="#hash"><code class="Ic">hash</code></a>
    551     [<code class="Ic">on</code> | <code class="Ic">off</code> |
    552     <var class="Ar">size</var>]</dt>
    553   <dd>Toggle hash mark (&#x2018;<code class="Li">#</code>&#x2019;) printing for
    554       each data block transferred. The size of a data block defaults to 1024
    555       bytes. This can be changed by specifying <var class="Ar">size</var> in
    556       bytes.</dd>
    557   <dt id="help"><a class="permalink" href="#help"><code class="Ic">help</code></a>
    558     [<var class="Ar">command</var>]</dt>
    559   <dd>Print an informative message about the meaning of
    560       <var class="Ar">command</var>. If no argument is given,
    561       <code class="Nm">ftp</code> prints a list of the known commands.</dd>
    562   <dt id="idle"><a class="permalink" href="#idle"><code class="Ic">idle</code></a>
    563     [<var class="Ar">seconds</var>]</dt>
    564   <dd>Set the inactivity timer on the remote server to
    565       <var class="Ar">seconds</var> seconds. If <var class="Ar">seconds</var> is
    566       omitted, the current inactivity timer is printed.</dd>
    567   <dt id="lcd"><a class="permalink" href="#lcd"><code class="Ic">lcd</code></a>
    568     [<var class="Ar">local-directory</var>]</dt>
    569   <dd>Change the working directory on the local machine. If no
    570       <var class="Ar">local-directory</var> is specified, the user's home
    571       directory is used.</dd>
    572   <dt id="less"><a class="permalink" href="#less"><code class="Ic">less</code></a>
    573     <var class="Ar">file</var></dt>
    574   <dd>A synonym for <code class="Ic">page</code>.</dd>
    575   <dt id="lpwd"><a class="permalink" href="#lpwd"><code class="Ic">lpwd</code></a></dt>
    576   <dd>Print the working directory on the local machine.</dd>
    577   <dt id="ls"><a class="permalink" href="#ls"><code class="Ic">ls</code></a>
    578     [<var class="Ar">remote-directory</var>
    579     [<var class="Ar">local-file</var>]]</dt>
    580   <dd>Print a listing of the contents of a directory on the remote machine. The
    581       listing includes any system-dependent information that the server chooses
    582       to include; for example, most <span class="Ux">UNIX</span> systems will
    583       produce output from the command &#x2018;<code class="Li">ls
    584       -l</code>&#x2019;. If <var class="Ar">remote-directory</var> is left
    585       unspecified, the current working directory is used. If interactive
    586       prompting is on, <code class="Nm">ftp</code> will prompt the user to
    587       verify that the last argument is indeed the target local file for
    588       receiving <code class="Ic">ls</code> output. If no local file is
    589       specified, or if <var class="Ar">local-file</var> is &#x2018;-&#x2019;,
    590       the output is sent to the terminal.</dd>
    591   <dt id="macdef"><a class="permalink" href="#macdef"><code class="Ic">macdef</code></a>
    592     <var class="Ar">macro-name</var></dt>
    593   <dd>Define a macro. Subsequent lines are stored as the macro
    594       <var class="Ar">macro-name</var>; a null line (consecutive newline
    595       characters in a file or carriage returns from the terminal) terminates
    596       macro input mode. There is a limit of 16 macros and 4096 total characters
    597       in all defined macros. Macro names can be a maximum of 8 characters.
    598       Macros are only applicable to the current session they are defined in (or
    599       if defined outside a session, to the session invoked with the next
    600       <code class="Ic">open</code> command), and remain defined until a
    601       <code class="Ic">close</code> command is executed. To invoke a macro, use
    602       the <code class="Ic">$</code> command (see above).
    603     <p class="Pp">The macro processor interprets
    604         &#x2018;<code class="Li">$</code>&#x2019; and
    605         &#x2018;<code class="Li">\</code>&#x2019; as special characters. A
    606         &#x2018;<code class="Li">$</code>&#x2019; followed by a number (or
    607         numbers) is replaced by the corresponding argument on the macro
    608         invocation command line. A &#x2018;<code class="Li">$</code>&#x2019;
    609         followed by an &#x2018;i&#x2019; tells the macro processor that the
    610         executing macro is to be looped. On the first pass
    611         &#x2018;<code class="Li">$i</code>&#x2019; is replaced by the first
    612         argument on the macro invocation command line, on the second pass it is
    613         replaced by the second argument, and so on. A
    614         &#x2018;<code class="Li">\</code>&#x2019; followed by any character is
    615         replaced by that character. Use the
    616         &#x2018;<code class="Li">\</code>&#x2019; to prevent special treatment
    617         of the &#x2018;<code class="Li">$</code>&#x2019;.</p>
    618   </dd>
    619   <dt id="mdelete"><a class="permalink" href="#mdelete"><code class="Ic">mdelete</code></a>
    620     [<var class="Ar">remote-files</var>]</dt>
    621   <dd>Delete the <var class="Ar">remote-files</var> on the remote machine.</dd>
    622   <dt id="mdir"><a class="permalink" href="#mdir"><code class="Ic">mdir</code></a>
    623     <var class="Ar">remote-files local-file</var></dt>
    624   <dd>A synonym for <code class="Ic">mls</code>.</dd>
    625   <dt id="mget"><a class="permalink" href="#mget"><code class="Ic">mget</code></a>
    626     [<code class="Fl">-cnr</code>] [<code class="Fl">-d</code>
    627     <var class="Ar">depth</var>] <var class="Ar">remote-files</var></dt>
    628   <dd>Expand the <var class="Ar">remote-files</var> on the remote machine and do
    629       a <code class="Ic">get</code> for each file name thus produced. See
    630       <code class="Ic">glob</code> for details on the filename expansion.
    631       Resulting file names will then be processed according to
    632       <code class="Ic">case</code>, <code class="Ic">ntrans</code>, and
    633       <code class="Ic">nmap</code> settings. Files are transferred into the
    634       local working directory, which can be changed with
    635       &#x2018;<code class="Li">lcd directory</code>&#x2019;; new local
    636       directories can be created with &#x2018;<code class="Li">! mkdir
    637       directory</code>&#x2019;.
    638     <p class="Pp">The options are as follows:</p>
    639     <dl class="Bl-tag">
    640       <dt id="c~2"><a class="permalink" href="#c~2"><code class="Fl">-c</code></a></dt>
    641       <dd>Use <code class="Ic">reget</code> instead of
    642           <code class="Ic">get</code>.</dd>
    643       <dt id="d~2"><a class="permalink" href="#d~2"><code class="Fl">-d</code></a>
    644         <var class="Ar">depth</var></dt>
    645       <dd>Specify the maximum recursion level <var class="Ar">depth</var>. The
    646           default is 0, which means unlimited.</dd>
    647       <dt id="n~2"><a class="permalink" href="#n~2"><code class="Fl">-n</code></a></dt>
    648       <dd>Use <code class="Ic">newer</code> instead of
    649           <code class="Ic">get</code>.</dd>
    650       <dt id="r~2"><a class="permalink" href="#r~2"><code class="Fl">-r</code></a></dt>
    651       <dd>Recursively descend the directory tree, transferring all files and
    652           directories.</dd>
    653     </dl>
    654   </dd>
    655   <dt id="mkdir"><a class="permalink" href="#mkdir"><code class="Ic">mkdir</code></a>
    656     <var class="Ar">directory-name</var></dt>
    657   <dd>Make a directory on the remote machine.</dd>
    658   <dt id="mls"><a class="permalink" href="#mls"><code class="Ic">mls</code></a>
    659     <var class="Ar">remote-files local-file</var></dt>
    660   <dd>Like <code class="Ic">ls</code>, except multiple remote files may be
    661       specified, and the <var class="Ar">local-file</var> must be specified. If
    662       interactive prompting is on, <code class="Nm">ftp</code> will prompt the
    663       user to verify that the last argument is indeed the target local file for
    664       receiving <code class="Ic">mls</code> output.</dd>
    665   <dt id="mode"><a class="permalink" href="#mode"><code class="Ic">mode</code></a>
    666     [<var class="Ar">mode-name</var>]</dt>
    667   <dd>Set the file transfer <code class="Ic">mode</code> to
    668       <var class="Ar">mode-name</var>. The default mode is
    669       &#x201C;stream&#x201D; mode.</dd>
    670   <dt id="modtime"><a class="permalink" href="#modtime"><code class="Ic">modtime</code></a>
    671     <var class="Ar">file</var></dt>
    672   <dd>Show the last modification time of <var class="Ar">file</var> on the
    673       remote machine.</dd>
    674   <dt id="more"><a class="permalink" href="#more"><code class="Ic">more</code></a>
    675     <var class="Ar">file</var></dt>
    676   <dd>A synonym for <code class="Ic">page</code>.</dd>
    677   <dt id="mput"><a class="permalink" href="#mput"><code class="Ic">mput</code></a>
    678     [<code class="Fl">-cr</code>] [<code class="Fl">-d</code>
    679     <var class="Ar">depth</var>] <var class="Ar">local-files</var></dt>
    680   <dd>Expand wild cards in the list of local files given as arguments and do a
    681       <code class="Ic">put</code> for each file in the resulting list. See
    682       <code class="Ic">glob</code> for details of filename expansion. Resulting
    683       file names will then be processed according to
    684       <code class="Ic">ntrans</code> and <code class="Ic">nmap</code> settings.
    685     <p class="Pp">The options are as follows:</p>
    686     <dl class="Bl-tag">
    687       <dt id="c~3"><a class="permalink" href="#c~3"><code class="Fl">-c</code></a></dt>
    688       <dd>Use <code class="Ic">reput</code> instead of
    689           <code class="Ic">put</code>.</dd>
    690       <dt id="d~3"><a class="permalink" href="#d~3"><code class="Fl">-d</code></a>
    691         <var class="Ar">depth</var></dt>
    692       <dd>Specify the maximum recursion level <var class="Ar">depth</var>. The
    693           default is 0, which means unlimited.</dd>
    694       <dt id="r~3"><a class="permalink" href="#r~3"><code class="Fl">-r</code></a></dt>
    695       <dd>Recursively descend the directory tree, transferring all files and
    696           directories.</dd>
    697     </dl>
    698   </dd>
    699   <dt id="msend"><a class="permalink" href="#msend"><code class="Ic">msend</code></a>
    700     [<code class="Fl">-c</code>] <var class="Ar">local-files</var></dt>
    701   <dd>A synonym for <code class="Ic">mput</code>.</dd>
    702   <dt id="newer"><a class="permalink" href="#newer"><code class="Ic">newer</code></a>
    703     <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
    704   <dd>Get the file only if the modification time of the remote file is more
    705       recent than the file on the current system. If the file does not exist on
    706       the current system, the remote file is considered
    707       <code class="Ic">newer</code>. Otherwise, this command is identical to
    708       <var class="Ar">get</var>.</dd>
    709   <dt id="nlist"><a class="permalink" href="#nlist"><code class="Ic">nlist</code></a>
    710     [<var class="Ar">remote-directory</var>
    711     [<var class="Ar">local-file</var>]]</dt>
    712   <dd>Print a list of the files in a directory on the remote machine. If
    713       <var class="Ar">remote-directory</var> is left unspecified, the current
    714       working directory is used. If interactive prompting is on,
    715       <code class="Nm">ftp</code> will prompt the user to verify that the last
    716       argument is indeed the target local file for receiving
    717       <code class="Ic">nlist</code> output. If no local file is specified, or if
    718       <var class="Ar">local-file</var> is &#x2018;-&#x2019;, the output is sent
    719       to the terminal. Note that on some servers, the
    720       <code class="Ic">nlist</code> command will only return information on
    721       normal files (not directories or special files).</dd>
    722   <dt id="nmap"><a class="permalink" href="#nmap"><code class="Ic">nmap</code></a>
    723     [<var class="Ar">inpattern outpattern</var>]</dt>
    724   <dd>Set or unset the filename mapping mechanism. If no arguments are
    725       specified, the filename mapping mechanism is unset. If arguments are
    726       specified, remote filenames are mapped during <code class="Ic">mput</code>
    727       commands and <code class="Ic">put</code> commands issued without a
    728       specified remote target filename. If arguments are specified, local
    729       filenames are mapped during <code class="Ic">mget</code> commands and
    730       <code class="Ic">get</code> commands issued without a specified local
    731       target filename. This command is useful when connecting to a non-UNIX
    732       remote computer with different file naming conventions or practices.
    733     <p class="Pp">The mapping follows the pattern set by
    734         <var class="Ar">inpattern</var> and <var class="Ar">outpattern</var>.
    735         <var class="Ar">inpattern</var> is a template for incoming filenames
    736         (which may have already been processed according to the
    737         <code class="Ic">ntrans</code> and <code class="Ic">case</code>
    738         settings). Variable templating is accomplished by including the
    739         sequences &#x2018;<code class="Li">$1</code>&#x2019;,
    740         &#x2018;<code class="Li">$2</code>&#x2019;, ...,
    741         &#x2018;<code class="Li">$9</code>&#x2019; in
    742         <var class="Ar">inpattern</var>. Use
    743         &#x2018;<code class="Li">\</code>&#x2019; to prevent this special
    744         treatment of the &#x2018;<code class="Li">$</code>&#x2019; character.
    745         All other characters are treated literally, and are used to determine
    746         the <code class="Ic">nmap</code> <var class="Ar">inpattern</var>
    747         variable values.</p>
    748     <p class="Pp">For example, given <var class="Ar">inpattern</var> $1.$2 and
    749         the remote file name &quot;mydata.data&quot;, $1 would have the value
    750         &quot;mydata&quot;, and $2 would have the value &quot;data&quot;. The
    751         <var class="Ar">outpattern</var> determines the resulting mapped
    752         filename. The sequences &#x2018;<code class="Li">$1</code>&#x2019;,
    753         &#x2018;<code class="Li">$2</code>&#x2019;, ...,
    754         &#x2018;<code class="Li">$9</code>&#x2019; are replaced by any value
    755         resulting from the <var class="Ar">inpattern</var> template. The
    756         sequence &#x2018;<code class="Li">$0</code>&#x2019; is replaced by the
    757         original filename. Additionally, the sequence
    758         &#x2018;[<var class="Ar">seq1</var>, <var class="Ar">seq2</var>]&#x2019;
    759         is replaced by <var class="Ar">seq1</var> if <var class="Ar">seq1</var>
    760         is not a null string; otherwise it is replaced by
    761         <var class="Ar">seq2</var>. For example:</p>
    762     <p class="Pp"></p>
    763     <div class="Bd Bd-indent"><code class="Li">nmap $1.$2.$3
    764       [$1,$2].[$2,file]</code></div>
    765     <p class="Pp">This command would yield the output filename
    766         <span class="Pa">myfile.data</span> for input filenames
    767         <span class="Pa">myfile.data</span> and
    768         <span class="Pa">myfile.data.old</span>;
    769         <span class="Pa">myfile.file</span> for the input filename
    770         <span class="Pa">myfile</span>; and
    771         <span class="Pa">myfile.myfile</span> for the input filename
    772         <span class="Pa">.myfile</span>. Spaces may be included in
    773         <var class="Ar">outpattern</var> by quoting them, as in the following
    774         example:</p>
    775     <div class="Bd Pp Bd-indent Li">
    776     <pre>nmap $1.$2 &quot;$1 $2&quot;</pre>
    777     </div>
    778     <p class="Pp">Use the &#x2018;<code class="Li">\</code>&#x2019; character to
    779         prevent special treatment of the
    780         &#x2018;<code class="Li">$</code>&#x2019;,
    781         &#x2018;<code class="Li">[</code>&#x2019;,
    782         &#x2018;<code class="Li">]</code>&#x2019;, and
    783         &#x2018;<code class="Li">,</code>&#x2019; characters.</p>
    784   </dd>
    785   <dt id="ntrans"><a class="permalink" href="#ntrans"><code class="Ic">ntrans</code></a>
    786     [<var class="Ar">inchars</var> [<var class="Ar">outchars</var>]]</dt>
    787   <dd>Set or unset the filename character translation mechanism. If no arguments
    788       are specified, the filename character translation mechanism is unset. If
    789       arguments are specified, characters in remote filenames are translated
    790       during <code class="Ic">mput</code> commands and
    791       <code class="Ic">put</code> commands issued without a specified remote
    792       target filename. If arguments are specified, characters in local filenames
    793       are translated during <code class="Ic">mget</code> commands and
    794       <code class="Ic">get</code> commands issued without a specified local
    795       target filename. This command is useful when connecting to a non-UNIX
    796       remote computer with different file naming conventions or practices.
    797       Characters in a filename matching a character in
    798       <var class="Ar">inchars</var> are replaced with the corresponding
    799       character in <var class="Ar">outchars</var>. If the character's position
    800       in <var class="Ar">inchars</var> is longer than the length of
    801       <var class="Ar">outchars</var>, the character is deleted from the file
    802       name.</dd>
    803   <dt id="open"><a class="permalink" href="#open"><code class="Ic">open</code></a>
    804     <var class="Ar">host</var> [<var class="Ar">port</var>]</dt>
    805   <dd>Establish a connection to the specified <var class="Ar">host</var> FTP
    806       server. An optional port number may be supplied, in which case
    807       <code class="Nm">ftp</code> will attempt to contact an FTP server at that
    808       port. If the <code class="Ic">auto-login</code> option is on (default),
    809       <code class="Nm">ftp</code> will also attempt to automatically log the
    810       user in to the FTP server (see below).</dd>
    811   <dt id="page"><a class="permalink" href="#page"><code class="Ic">page</code></a>
    812     <var class="Ar">file</var></dt>
    813   <dd>Retrieve <code class="Ic">file</code> and display with the program defined
    814       in <code class="Ev">PAGER</code> (defaulting to
    815       <a class="Xr" href="/more.1" aria-label="more, section 1">more(1)</a> if
    816       <code class="Ev">PAGER</code> is null or not defined).</dd>
    817   <dt id="passive"><a class="permalink" href="#passive"><code class="Ic">passive</code></a>
    818     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    819   <dd>Toggle passive mode. If passive mode is turned on (default is on),
    820       <code class="Nm">ftp</code> will send a <code class="Dv">EPSV</code>
    821       command for all data connections instead of the usual
    822       <code class="Dv">PORT</code> command. The <code class="Dv">PASV</code>
    823       command requests that the remote server open a port for the data
    824       connection and return the address of that port. The remote server listens
    825       on that port and the client connects to it. When using the more
    826       traditional <code class="Dv">PORT</code> command, the client listens on a
    827       port and sends that address to the remote server, who connects back to it.
    828       Passive mode is useful when using <code class="Nm">ftp</code> through a
    829       gateway router or host that controls the directionality of traffic. (Note
    830       that though FTP servers are required to support the
    831       <code class="Dv">PASV</code> command by RFC 1123, some do not.)</dd>
    832   <dt id="preserve"><a class="permalink" href="#preserve"><code class="Ic">preserve</code></a>
    833     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    834   <dd>Toggle preservation of modification times on retrieved files.</dd>
    835   <dt id="progress"><a class="permalink" href="#progress"><code class="Ic">progress</code></a>
    836     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    837   <dd>Toggle display of transfer progress bar. The progress bar will be disabled
    838       for a transfer that has <var class="Ar">local-file</var> as
    839       &#x2018;-&#x2019; or a command that starts with &#x2018;|&#x2019;. Refer
    840       to <a class="Sx" href="#FILE_NAMING_CONVENTIONS">FILE NAMING
    841       CONVENTIONS</a> for more information.</dd>
    842   <dt id="prompt"><a class="permalink" href="#prompt"><code class="Ic">prompt</code></a>
    843     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    844   <dd>Toggle interactive prompting. Interactive prompting occurs during multiple
    845       file transfers to allow the user to selectively retrieve or store files.
    846       If prompting is turned off (default is on), any
    847       <code class="Ic">mget</code> or <code class="Ic">mput</code> will transfer
    848       all files, and any <code class="Ic">mdelete</code> will delete all files.
    849     <p class="Pp">When prompting is on, the following commands are available at
    850         a prompt:</p>
    851     <div class="Bd-indent">
    852     <dl class="Bl-tag">
    853       <dt><code class="Ic">?</code></dt>
    854       <dd>Print help message.</dd>
    855       <dt id="a~2"><a class="permalink" href="#a~2"><code class="Ic">a</code></a></dt>
    856       <dd>Answer &#x201C;yes&#x201D; to the current file and automatically
    857           answer &#x201C;yes&#x201D; to any remaining files for the current
    858           command.</dd>
    859       <dt id="n~3"><a class="permalink" href="#n~3"><code class="Ic">n</code></a></dt>
    860       <dd>Do not transfer the file.</dd>
    861       <dt id="p~2"><a class="permalink" href="#p~2"><code class="Ic">p</code></a></dt>
    862       <dd>Answer &#x201C;yes&#x201D; to the current file and turn off prompt
    863           mode (as if &#x201C;prompt off&#x201D; had been given).</dd>
    864       <dt id="q"><a class="permalink" href="#q"><code class="Ic">q</code></a></dt>
    865       <dd>Answer &#x201C;no&#x201D; to the current file and automatically answer
    866           &#x201C;no&#x201D; to any remaining files for the current
    867         command.</dd>
    868       <dt id="y"><a class="permalink" href="#y"><code class="Ic">y</code></a></dt>
    869       <dd>Transfer the file.</dd>
    870     </dl>
    871     </div>
    872   </dd>
    873   <dt id="proxy"><a class="permalink" href="#proxy"><code class="Ic">proxy</code></a>
    874     <var class="Ar">command</var></dt>
    875   <dd>Execute an FTP command on a secondary control connection. This command
    876       allows simultaneous connection to two remote FTP servers for transferring
    877       files between the two servers. The first <code class="Ic">proxy</code>
    878       command should be an <code class="Ic">open</code>, to establish the
    879       secondary control connection. Enter the command <code class="Ic">proxy
    880       ?</code> to see other FTP commands executable on the secondary connection.
    881       The following commands behave differently when prefaced by
    882       <code class="Ic">proxy</code>: <code class="Ic">open</code> will not
    883       define new macros during the auto-login process;
    884       <code class="Ic">close</code> will not erase existing macro definitions;
    885       <code class="Ic">get</code> and <code class="Ic">mget</code> transfer
    886       files from the host on the primary control connection to the host on the
    887       secondary control connection; and <code class="Ic">put</code>,
    888       <code class="Ic">mput</code>, and <code class="Ic">append</code> transfer
    889       files from the host on the secondary control connection to the host on the
    890       primary control connection. Third party file transfers depend upon support
    891       of the FTP protocol <code class="Dv">PASV</code> command by the server on
    892       the secondary control connection.</dd>
    893   <dt id="put"><a class="permalink" href="#put"><code class="Ic">put</code></a>
    894     <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
    895   <dd>Store a local file on the remote machine. If
    896       <var class="Ar">remote-file</var> is left unspecified, the local file name
    897       is used after processing according to any <code class="Ic">ntrans</code>
    898       or <code class="Ic">nmap</code> settings in naming the remote file. File
    899       transfer uses the current settings for <code class="Ic">type</code>,
    900       <code class="Ic">format</code>, <code class="Ic">mode</code>, and
    901       <code class="Ic">structure</code>.</dd>
    902   <dt id="pwd"><a class="permalink" href="#pwd"><code class="Ic">pwd</code></a></dt>
    903   <dd>Print the name of the current working directory on the remote
    904     machine.</dd>
    905   <dt id="quit"><a class="permalink" href="#quit"><code class="Ic">quit</code></a></dt>
    906   <dd>A synonym for <code class="Ic">bye</code>.</dd>
    907   <dt id="quote"><a class="permalink" href="#quote"><code class="Ic">quote</code></a>
    908     <var class="Ar">arg ...</var></dt>
    909   <dd>The arguments specified are sent, verbatim, to the remote FTP server.</dd>
    910   <dt id="recv"><a class="permalink" href="#recv"><code class="Ic">recv</code></a>
    911     <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
    912   <dd>A synonym for <code class="Ic">get</code>.</dd>
    913   <dt id="reget"><a class="permalink" href="#reget"><code class="Ic">reget</code></a>
    914     <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
    915   <dd>Reget acts like get, except that if <var class="Ar">local-file</var>
    916       exists and is smaller than <var class="Ar">remote-file</var>,
    917       <var class="Ar">local-file</var> is presumed to be a partially transferred
    918       copy of <var class="Ar">remote-file</var> and the transfer is continued
    919       from the apparent point of failure. This command is useful when
    920       transferring very large files over networks that are prone to dropping
    921       connections.</dd>
    922   <dt id="rename"><a class="permalink" href="#rename"><code class="Ic">rename</code></a>
    923     <var class="Ar">from-name to-name</var></dt>
    924   <dd>Rename the file <var class="Ar">from-name</var> on the remote machine to
    925       the file <var class="Ar">to-name</var>.</dd>
    926   <dt id="reput"><a class="permalink" href="#reput"><code class="Ic">reput</code></a>
    927     <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
    928   <dd>Reput acts like put, except that if <var class="Ar">remote-file</var>
    929       exists and is smaller than <var class="Ar">local-file</var>,
    930       <var class="Ar">remote-file</var> is presumed to be a partially
    931       transferred copy of <var class="Ar">local-file</var> and the transfer is
    932       continued from the apparent point of failure. This command is useful when
    933       transferring very large files over networks that are prone to dropping
    934       connections.</dd>
    935   <dt id="reset"><a class="permalink" href="#reset"><code class="Ic">reset</code></a></dt>
    936   <dd>Clear reply queue. This command re-synchronizes command/reply sequencing
    937       with the remote FTP server. Resynchronization may be necessary following a
    938       violation of the FTP protocol by the remote server.</dd>
    939   <dt id="restart"><a class="permalink" href="#restart"><code class="Ic">restart</code></a>
    940     <var class="Ar">marker</var></dt>
    941   <dd>Restart the immediately following <code class="Ic">get</code> or
    942       <code class="Ic">put</code> at the indicated <var class="Ar">marker</var>.
    943       On <span class="Ux">UNIX</span> systems, <var class="Ar">marker</var> is
    944       usually a byte offset into the file.</dd>
    945   <dt id="rhelp"><a class="permalink" href="#rhelp"><code class="Ic">rhelp</code></a>
    946     [<var class="Ar">command-name</var>]</dt>
    947   <dd>Request help from the remote FTP server. If a
    948       <var class="Ar">command-name</var> is specified, it is supplied to the
    949       server as well.</dd>
    950   <dt id="rmdir"><a class="permalink" href="#rmdir"><code class="Ic">rmdir</code></a>
    951     <var class="Ar">directory-name</var></dt>
    952   <dd>Delete a directory on the remote machine.</dd>
    953   <dt id="rstatus"><a class="permalink" href="#rstatus"><code class="Ic">rstatus</code></a>
    954     [<var class="Ar">file</var>]</dt>
    955   <dd>With no arguments, show status of remote machine. If
    956       <var class="Ar">file</var> is specified, show status of
    957       <var class="Ar">file</var> on remote machine.</dd>
    958   <dt id="runique"><a class="permalink" href="#runique"><code class="Ic">runique</code></a>
    959     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    960   <dd>Toggle storing of files on the local system with unique filenames. If a
    961       file already exists with a name equal to the target local filename for a
    962       <code class="Ic">get</code> or <code class="Ic">mget</code> command, a
    963       &#x201C;.1&#x201D; is appended to the name. If the resulting name matches
    964       another existing file, a &#x201C;.2&#x201D; is appended to the original
    965       name. If this process continues up to &#x201C;.99&#x201D;, an error
    966       message is printed, and the transfer does not take place. The generated
    967       unique filename will be reported. Note that
    968       <code class="Ic">runique</code> will not affect local files generated from
    969       a shell command (see below). The default value is off.</dd>
    970   <dt id="send"><a class="permalink" href="#send"><code class="Ic">send</code></a>
    971     <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
    972   <dd>A synonym for <code class="Ic">put</code>.</dd>
    973   <dt id="sendport"><a class="permalink" href="#sendport"><code class="Ic">sendport</code></a>
    974     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    975   <dd>Toggle the use of <code class="Dv">PORT</code> commands. By default,
    976       <code class="Nm">ftp</code> will attempt to use a
    977       <code class="Dv">PORT</code> command when establishing a connection for
    978       each data transfer. The use of <code class="Dv">PORT</code> commands can
    979       prevent delays when performing multiple file transfers. If the
    980       <code class="Dv">PORT</code> command fails, <code class="Nm">ftp</code>
    981       will use the default data port. When the use of
    982       <code class="Dv">PORT</code> commands is disabled, no attempt will be made
    983       to use <code class="Dv">PORT</code> commands for each data transfer. This
    984       is useful for certain FTP implementations which do ignore
    985       <code class="Dv">PORT</code> commands but, incorrectly, indicate they've
    986       been accepted.</dd>
    987   <dt id="site"><a class="permalink" href="#site"><code class="Ic">site</code></a>
    988     <var class="Ar">arg ...</var></dt>
    989   <dd>The arguments specified are sent, verbatim, to the remote FTP server as a
    990       <code class="Dv">SITE</code> command.</dd>
    991   <dt id="size"><a class="permalink" href="#size"><code class="Ic">size</code></a>
    992     <var class="Ar">file</var></dt>
    993   <dd>Return size of <var class="Ar">file</var> on remote machine.</dd>
    994   <dt id="status"><a class="permalink" href="#status"><code class="Ic">status</code></a></dt>
    995   <dd>Show the current status of <code class="Nm">ftp</code>.</dd>
    996   <dt id="sunique"><a class="permalink" href="#sunique"><code class="Ic">sunique</code></a>
    997     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
    998   <dd>Toggle storing of files on remote machine under unique file names. The
    999       remote FTP server must support the FTP protocol
   1000       <code class="Dv">STOU</code> command for successful completion. The remote
   1001       server will report the unique name. Default value is off.</dd>
   1002   <dt id="system"><a class="permalink" href="#system"><code class="Ic">system</code></a></dt>
   1003   <dd>Show the type of operating system running on the remote machine.</dd>
   1004   <dt id="trace"><a class="permalink" href="#trace"><code class="Ic">trace</code></a>
   1005     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
   1006   <dd>Toggle packet tracing.</dd>
   1007   <dt id="type"><a class="permalink" href="#type"><code class="Ic">type</code></a>
   1008     [<var class="Ar">type-name</var>]</dt>
   1009   <dd>Set the file transfer <code class="Ic">type</code> to
   1010       <var class="Ar">type-name</var>. If no type is specified, the current type
   1011       is printed. The default type is &#x201C;binary&#x201D;.</dd>
   1012   <dt id="umask"><a class="permalink" href="#umask"><code class="Ic">umask</code></a>
   1013     [<var class="Ar">newmask</var>]</dt>
   1014   <dd>Set the default umask on the remote server to
   1015       <var class="Ar">newmask</var>. If <var class="Ar">newmask</var> is
   1016       omitted, the current umask is printed.</dd>
   1017   <dt id="user"><a class="permalink" href="#user"><code class="Ic">user</code></a>
   1018     <var class="Ar">username</var> [<var class="Ar">password</var>
   1019     [<var class="Ar">account</var>]]</dt>
   1020   <dd>Identify yourself to the remote FTP server. If the
   1021       <var class="Ar">password</var> is not specified and the server requires
   1022       it, <code class="Nm">ftp</code> will prompt the user for it (after
   1023       disabling local echo). If an <var class="Ar">account</var> field is not
   1024       specified, and the FTP server requires it, the user will be prompted for
   1025       it. If an <var class="Ar">account</var> field is specified, an account
   1026       command will be relayed to the remote server after the login sequence is
   1027       completed if the remote server did not require it for logging in. Unless
   1028       <code class="Nm">ftp</code> is invoked with &#x201C;auto-login&#x201D;
   1029       disabled, this process is done automatically on initial connection to the
   1030       FTP server.</dd>
   1031   <dt id="verbose"><a class="permalink" href="#verbose"><code class="Ic">verbose</code></a>
   1032     [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
   1033   <dd>Toggle verbose mode. In verbose mode, all responses from the FTP server
   1034       are displayed to the user. In addition, if verbose is on, when a file
   1035       transfer completes, statistics regarding the efficiency of the transfer
   1036       are reported. By default, verbose is on.</dd>
   1037 </dl>
   1038 <p class="Pp">Command arguments which have embedded spaces may be quoted with
   1039     quote (&#x2018;<code class="Li">&quot;</code>&#x2019;) marks.</p>
   1040 <p class="Pp">Commands which toggle settings can take an explicit
   1041     <code class="Ic">on</code> or <code class="Ic">off</code> argument to force
   1042     the setting appropriately.</p>
   1043 <p class="Pp">If <code class="Nm">ftp</code> receives a
   1044     <code class="Dv">SIGINFO</code> (see the &#x201C;status&#x201D; argument of
   1045     <a class="Xr" href="/stty.1" aria-label="stty, section 1">stty(1)</a>)
   1046     signal whilst a transfer is in progress, the current transfer rate
   1047     statistics will be written to the standard error output, in the same format
   1048     as the standard completion message.</p>
   1049 </section>
   1050 <section class="Sh">
   1051 <h2 class="Sh" id="AUTO-FETCHING_FILES"><a class="permalink" href="#AUTO-FETCHING_FILES">AUTO-FETCHING
   1052   FILES</a></h2>
   1053 <p class="Pp">In addition to standard commands, this version of
   1054     <code class="Nm">ftp</code> supports an auto-fetch feature. To enable
   1055     auto-fetch, simply pass the list of hostnames/files on the command line.</p>
   1056 <p class="Pp">The following formats are valid syntax for an auto-fetch
   1057   element:</p>
   1058 <dl class="Bl-tag">
   1059   <dt><var class="Ar">host</var>:/<var class="Ar">file</var>[/]</dt>
   1060   <dd>&#x201C;Classic&#x201D; <code class="Nm">ftp</code> format.</dd>
   1061   <dt>ftp://[<var class="Ar">user</var>:<var class="Ar">password</var><span class="No">@</span>]<var class="Ar">host</var>[:<var class="Ar">port</var>]<span class="No">/</span><var class="Ar">file</var>[/]</dt>
   1062   <dd> An FTP URL, retrieved using the FTP protocol if
   1063       <code class="Ev">ftp_proxy</code> isn't defined. Otherwise, transfer using
   1064       HTTP via the proxy defined in <code class="Ev">ftp_proxy</code>. If a
   1065       <var class="Ar">user</var> and <var class="Ar">password</var> are given
   1066       and <code class="Ev">ftp_proxy</code> isn't defined, log in as
   1067       <var class="Ar">user</var> with a password of
   1068       <var class="Ar">password</var>.</dd>
   1069   <dt>http://[<var class="Ar">user</var>:<var class="Ar">password</var><span class="No">@</span>]<var class="Ar">host</var>[:<var class="Ar">port</var>]<span class="No">/</span><var class="Ar">file</var></dt>
   1070   <dd> An HTTP URL, retrieved using the HTTP protocol. If
   1071       <code class="Ev">http_proxy</code> is defined, it is used as a URL to an
   1072       HTTP proxy server. If a <var class="Ar">user</var> and
   1073       <var class="Ar">password</var> are given and
   1074       <code class="Ev">http_proxy</code> isn't defined, log in as
   1075       <var class="Ar">user</var> with a password of
   1076       <var class="Ar">password</var> using Basic authentication.</dd>
   1077   <dt>https://[<var class="Ar">user</var>:<var class="Ar">password</var><span class="No">@</span>]<var class="Ar">host</var>[:<var class="Ar">port</var>]<span class="No">/</span><var class="Ar">file</var></dt>
   1078   <dd> An HTTPS URL, retrieved using the HTTPS protocol. If
   1079       <code class="Ev">http_proxy</code> is defined, this HTTPS proxy server
   1080       will be used to fetch the file using the CONNECT method. If a
   1081       <var class="Ar">user</var> and <var class="Ar">password</var> are given
   1082       and <code class="Ev">http_proxy</code> isn't defined, log in as
   1083       <var class="Ar">user</var> with a password of
   1084       <var class="Ar">password</var> using Basic authentication.</dd>
   1085   <dt>file:<var class="Ar">file</var></dt>
   1086   <dd><var class="Ar">file</var> is retrieved from a mounted file system.</dd>
   1087 </dl>
   1088 <p class="Pp">If a classic format or an FTP URL format has a trailing
   1089     &#x2018;/&#x2019;, then <code class="Nm">ftp</code> will connect to the site
   1090     and <code class="Ic">cd</code> to the directory given as the path, and leave
   1091     the user in interactive mode ready for further input.</p>
   1092 <p class="Pp">If <var class="Ar">file</var> contains a glob character and
   1093     globbing is enabled (see <code class="Ic">glob</code>), then the equivalent
   1094     of <code class="Ic">mget</code> <var class="Ar">file</var> is performed.</p>
   1095 <p class="Pp">If no <code class="Fl">-o</code> option is specified, and the
   1096     directory component of <var class="Ar">file</var> contains no globbing
   1097     characters, then it is stored in the current directory as the
   1098     <a class="Xr" href="/basename.1" aria-label="basename, section
   1099     1">basename(1)</a> of <var class="Ar">file</var>. If
   1100     <code class="Fl">-o</code> <var class="Ar">output</var> is specified, then
   1101     <var class="Ar">file</var> is stored as <var class="Ar">output</var>.
   1102     Otherwise, the remote name is used as the local name.</p>
   1103 </section>
   1104 <section class="Sh">
   1105 <h2 class="Sh" id="ABORTING_A_FILE_TRANSFER"><a class="permalink" href="#ABORTING_A_FILE_TRANSFER">ABORTING
   1106   A FILE TRANSFER</a></h2>
   1107 <p class="Pp">To abort a file transfer, use the terminal interrupt key (usually
   1108     Ctrl-C). Sending transfers will be immediately halted. Receiving transfers
   1109     will be halted by sending an FTP protocol <code class="Dv">ABOR</code>
   1110     command to the remote server, and discarding any further data received. The
   1111     speed at which this is accomplished depends upon the remote server's support
   1112     for <code class="Dv">ABOR</code> processing. If the remote server does not
   1113     support the <code class="Dv">ABOR</code> command, an
   1114     &#x2018;<code class="Li">ftp&gt;</code>&#x2019; prompt will not appear until
   1115     the remote server has completed sending the requested file.</p>
   1116 <p class="Pp">The terminal interrupt key sequence will be ignored when
   1117     <code class="Nm">ftp</code> has completed any local processing and is
   1118     awaiting a reply from the remote server. A long delay in this mode may
   1119     result from the ABOR processing described above, or from unexpected behavior
   1120     by the remote server, including violations of the FTP protocol. If the delay
   1121     results from unexpected remote server behavior, the local
   1122     <code class="Nm">ftp</code> program must be killed by hand.</p>
   1123 </section>
   1124 <section class="Sh">
   1125 <h2 class="Sh" id="FILE_NAMING_CONVENTIONS"><a class="permalink" href="#FILE_NAMING_CONVENTIONS">FILE
   1126   NAMING CONVENTIONS</a></h2>
   1127 <p class="Pp">Files specified as arguments to <code class="Nm">ftp</code>
   1128     commands are processed according to the following rules.</p>
   1129 <ol class="Bl-enum">
   1130   <li>If &#x2018;-&#x2019; is specified as a local file name, the standard input
   1131       (for reading) or standard output (for writing) is used.</li>
   1132   <li>If the first character of a local file name is &#x2018;|&#x2019;, the
   1133       remainder of the argument is interpreted as a shell command.
   1134       <code class="Nm">ftp</code> then forks a shell, using
   1135       <a class="Xr" href="/popen.3" aria-label="popen, section 3">popen(3)</a>
   1136       with the argument supplied, and reads (writes) from the standard output
   1137       (standard input). If the shell command includes spaces, the argument must
   1138       be quoted; e.g., &quot;ls -lt&quot;. A particularly useful example of this
   1139       mechanism is: &quot;ls . |more&quot;.</li>
   1140   <li>Failing the above checks, if &#x201C;globbing&#x201D; is enabled, local
   1141       file names are expanded according to the rules used in the
   1142       <a class="Xr" href="/csh.1" aria-label="csh, section 1">csh(1)</a>
   1143       <code class="Ic">glob</code> command. If the <code class="Nm">ftp</code>
   1144       command expects a single local file (e.g., <code class="Ic">put</code>),
   1145       only the first filename generated by the &#x201C;globbing&#x201D;
   1146       operation is used.</li>
   1147   <li>For <code class="Ic">mget</code> commands and <code class="Ic">get</code>
   1148       commands with unspecified local file names, the local filename is the
   1149       remote filename, which may be altered by a <code class="Ic">case</code>,
   1150       <code class="Ic">ntrans</code>, or <code class="Ic">nmap</code> setting.
   1151       The resulting filename may then be altered if
   1152       <code class="Ic">runique</code> is on.</li>
   1153   <li>For <code class="Ic">mput</code> commands and <code class="Ic">put</code>
   1154       commands with unspecified remote file names, the remote filename is the
   1155       local filename, which may be altered by a <code class="Ic">ntrans</code>
   1156       or <code class="Ic">nmap</code> setting. The resulting filename may then
   1157       be altered by the remote server if <code class="Ic">sunique</code> is
   1158     on.</li>
   1159 </ol>
   1160 </section>
   1161 <section class="Sh">
   1162 <h2 class="Sh" id="FILE_TRANSFER_PARAMETERS"><a class="permalink" href="#FILE_TRANSFER_PARAMETERS">FILE
   1163   TRANSFER PARAMETERS</a></h2>
   1164 <p class="Pp">The FTP specification specifies many parameters which may affect a
   1165     file transfer. The <code class="Ic">type</code> may be one of
   1166     &#x201C;ascii&#x201D;, &#x201C;binary&#x201D;, or &#x201C;image&#x201D;.
   1167     <code class="Nm">ftp</code> supports the ASCII and image types of file
   1168     transfer.</p>
   1169 <p class="Pp"><code class="Nm">ftp</code> supports only the default values for
   1170     the remaining file transfer parameters: <code class="Ic">mode</code>,
   1171     <code class="Ic">form</code>, and <code class="Ic">struct</code>.</p>
   1172 </section>
   1173 <section class="Sh">
   1174 <h2 class="Sh" id="THE_.netrc_FILE"><a class="permalink" href="#THE_.netrc_FILE">THE
   1175   .netrc FILE</a></h2>
   1176 <p class="Pp">The <span class="Pa">.netrc</span> file contains login and
   1177     initialization information used by the auto-login process. It resides in the
   1178     user's home directory. The following tokens are recognized; they may be
   1179     separated by spaces, tabs, or new-lines:</p>
   1180 <dl class="Bl-tag">
   1181   <dt id="machine"><a class="permalink" href="#machine"><code class="Ic">machine</code></a>
   1182     <var class="Ar">name</var></dt>
   1183   <dd>Identify a remote machine <var class="Ar">name</var>. The auto-login
   1184       process searches the <span class="Pa">.netrc</span> file for a
   1185       <code class="Ic">machine</code> token that matches the remote machine
   1186       specified on the <code class="Nm">ftp</code> command line or as an
   1187       <code class="Ic">open</code> command argument. Once a match is made, the
   1188       subsequent <span class="Pa">.netrc</span> tokens are processed, stopping
   1189       when the end of file is reached or another <code class="Ic">machine</code>
   1190       or a <code class="Ic">default</code> token is encountered.</dd>
   1191   <dt id="default"><a class="permalink" href="#default"><code class="Ic">default</code></a></dt>
   1192   <dd>This is the same as <code class="Ic">machine</code>
   1193       <var class="Ar">name</var> except that <code class="Ic">default</code>
   1194       matches any name. There can be only one <code class="Ic">default</code>
   1195       token, and it must be after all <code class="Ic">machine</code> tokens.
   1196       This is normally used as:
   1197     <p class="Pp"></p>
   1198     <div class="Bd Bd-indent"><code class="Li">default login anonymous password
   1199       user@site</code></div>
   1200     <p class="Pp">thereby giving the user <var class="Ar">automatic</var>
   1201         anonymous FTP login to machines not specified in
   1202         <span class="Pa">.netrc</span>. This can be overridden by using the
   1203         <code class="Fl">-n</code> flag to disable auto-login.</p>
   1204   </dd>
   1205   <dt id="login"><a class="permalink" href="#login"><code class="Ic">login</code></a>
   1206     <var class="Ar">name</var></dt>
   1207   <dd>Identify a user on the remote machine. If this token is present, the
   1208       auto-login process will initiate a login using the specified
   1209       <var class="Ar">name</var>.</dd>
   1210   <dt id="password"><a class="permalink" href="#password"><code class="Ic">password</code></a>
   1211     <var class="Ar">string</var></dt>
   1212   <dd>Supply a password. If this token is present, the auto-login process will
   1213       supply the specified string if the remote server requires a password as
   1214       part of the login process. Note that if this token is present in the
   1215       <span class="Pa">.netrc</span> file for any user other than
   1216       <var class="Ar">anonymous</var>, <code class="Nm">ftp</code> will abort
   1217       the auto-login process if the <span class="Pa">.netrc</span> is readable
   1218       by anyone besides the user.</dd>
   1219   <dt id="account~2"><a class="permalink" href="#account~2"><code class="Ic">account</code></a>
   1220     <var class="Ar">string</var></dt>
   1221   <dd>Supply an additional account password. If this token is present, the
   1222       auto-login process will supply the specified string if the remote server
   1223       requires an additional account password, or the auto-login process will
   1224       initiate an <code class="Dv">ACCT</code> command if it does not.</dd>
   1225   <dt id="macdef~2"><a class="permalink" href="#macdef~2"><code class="Ic">macdef</code></a>
   1226     <var class="Ar">name</var></dt>
   1227   <dd>Define a macro. This token functions like the <code class="Nm">ftp</code>
   1228       <code class="Ic">macdef</code> command functions. A macro is defined with
   1229       the specified name; its contents begin with the next
   1230       <span class="Pa">.netrc</span> line and continue until a null line
   1231       (consecutive new-line characters) is encountered. Like the other tokens in
   1232       the <span class="Pa">.netrc</span> file, a <code class="Ic">macdef</code>
   1233       is applicable only to the <code class="Ic">machine</code> definition
   1234       preceding it. A <code class="Ic">macdef</code> entry cannot be utilized by
   1235       multiple <code class="Ic">machine</code> definitions; rather, it must be
   1236       defined following each <code class="Ic">machine</code> it is intended to
   1237       be used with. If a macro named <code class="Ic">init</code> is defined, it
   1238       is automatically executed as the last step in the auto-login process.</dd>
   1239 </dl>
   1240 </section>
   1241 <section class="Sh">
   1242 <h2 class="Sh" id="COMMAND_LINE_EDITING"><a class="permalink" href="#COMMAND_LINE_EDITING">COMMAND
   1243   LINE EDITING</a></h2>
   1244 <p class="Pp"><code class="Nm">ftp</code> supports interactive command line
   1245     editing, via the <a class="Xr" href="/editline.3" aria-label="editline,
   1246     section 3">editline(3)</a> library. It is enabled with the
   1247     <code class="Ic">edit</code> command, and is enabled by default if input is
   1248     from a tty. Previous lines can be recalled and edited with the arrow keys,
   1249     and other GNU Emacs-style editing keys may be used as well.</p>
   1250 <p class="Pp">The <a class="Xr" href="/editline.3" aria-label="editline, section
   1251     3">editline(3)</a> library is configured with a
   1252     <span class="Pa">.editrc</span> file - refer to
   1253     <a class="Xr" href="/editrc.5" aria-label="editrc, section 5">editrc(5)</a>
   1254     for more information.</p>
   1255 <p class="Pp">An extra key binding is available to <code class="Nm">ftp</code>
   1256     to provide context sensitive command and filename completion (including
   1257     remote file completion). To use this, bind a key to the
   1258     <a class="Xr" href="/editline.3" aria-label="editline, section
   1259     3">editline(3)</a> command <code class="Ic">ftp-complete</code>. By default,
   1260     this is bound to the TAB key.</p>
   1261 </section>
   1262 <section class="Sh">
   1263 <h2 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h2>
   1264 <p class="Pp"><code class="Nm">ftp</code> utilizes the following environment
   1265     variables:</p>
   1266 <dl class="Bl-tag">
   1267   <dt id="FTPMODE"><a class="permalink" href="#FTPMODE"><code class="Ev">FTPMODE</code></a></dt>
   1268   <dd>Overrides the default operation mode. Recognized values are:
   1269     <p class="Pp"></p>
   1270     <div class="Bd-indent">
   1271     <dl class="Bl-tag Bl-compact">
   1272       <dt>passive</dt>
   1273       <dd>passive mode FTP only</dd>
   1274       <dt>active</dt>
   1275       <dd>active mode FTP only</dd>
   1276       <dt>auto</dt>
   1277       <dd>automatic determination of passive or active (this is the
   1278         default)</dd>
   1279       <dt>gate</dt>
   1280       <dd>gate-ftp mode</dd>
   1281     </dl>
   1282     </div>
   1283   </dd>
   1284   <dt id="FTPSERVER"><a class="permalink" href="#FTPSERVER"><code class="Ev">FTPSERVER</code></a></dt>
   1285   <dd>Host to use as gate-ftp server when <code class="Ic">gate</code> is
   1286       enabled.</dd>
   1287   <dt id="FTPSERVERPORT"><a class="permalink" href="#FTPSERVERPORT"><code class="Ev">FTPSERVERPORT</code></a></dt>
   1288   <dd>Port to use when connecting to gate-ftp server when
   1289       <code class="Ic">gate</code> is enabled. Default is port returned by a
   1290       <code class="Fn">getservbyname</code>() lookup of
   1291       &#x201C;ftpgate/tcp&#x201D;.</dd>
   1292   <dt id="HOME"><a class="permalink" href="#HOME"><code class="Ev">HOME</code></a></dt>
   1293   <dd>For default location of a <span class="Pa">.netrc</span> file, if one
   1294       exists.</dd>
   1295   <dt id="PAGER"><a class="permalink" href="#PAGER"><code class="Ev">PAGER</code></a></dt>
   1296   <dd>Used by <code class="Ic">page</code> to display files.</dd>
   1297   <dt id="SHELL"><a class="permalink" href="#SHELL"><code class="Ev">SHELL</code></a></dt>
   1298   <dd>For default shell.</dd>
   1299   <dt id="ftp_proxy"><a class="permalink" href="#ftp_proxy"><code class="Ev">ftp_proxy</code></a></dt>
   1300   <dd>URL of FTP proxy to use when making FTP URL requests (if not defined, use
   1301       the standard FTP protocol).</dd>
   1302   <dt id="http_proxy"><a class="permalink" href="#http_proxy"><code class="Ev">http_proxy</code></a></dt>
   1303   <dd>URL of HTTP proxy to use when making HTTP or HTTPS URL requests.</dd>
   1304   <dt id="http_cookies"><a class="permalink" href="#http_cookies"><code class="Ev">http_cookies</code></a></dt>
   1305   <dd>Path of a Netscape-like cookiejar file to use when making HTTP or HTTPS
   1306       URL requests.</dd>
   1307 </dl>
   1308 </section>
   1309 <section class="Sh">
   1310 <h2 class="Sh" id="PORT_ALLOCATION"><a class="permalink" href="#PORT_ALLOCATION">PORT
   1311   ALLOCATION</a></h2>
   1312 <p class="Pp">For active mode data connections, <code class="Nm">ftp</code> will
   1313     listen to a random high TCP port. The interval of ports used are
   1314     configurable using <a class="Xr" href="/sysctl.8" aria-label="sysctl,
   1315     section 8">sysctl(8)</a> variables
   1316     <var class="Va">net.inet.ip.porthifirst</var> and
   1317     <var class="Va">net.inet.ip.porthilast</var>.</p>
   1318 </section>
   1319 <section class="Sh">
   1320 <h2 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
   1321   ALSO</a></h2>
   1322 <p class="Pp"><a class="Xr" href="/basename.1" aria-label="basename, section
   1323     1">basename(1)</a>, <a class="Xr" href="/csh.1" aria-label="csh, section
   1324     1">csh(1)</a>, <a class="Xr" href="/more.1" aria-label="more, section
   1325     1">more(1)</a>, <a class="Xr" href="/stty.1" aria-label="stty, section
   1326     1">stty(1)</a>, <a class="Xr" href="/tar.1" aria-label="tar, section
   1327     1">tar(1)</a>, <a class="Xr" href="/tftp.1" aria-label="tftp, section
   1328     1">tftp(1)</a>, <a class="Xr" href="/editline.3" aria-label="editline,
   1329     section 3">editline(3)</a>,
   1330     <a class="Xr" href="/getservbyname.3" aria-label="getservbyname, section
   1331     3">getservbyname(3)</a>, <a class="Xr" href="/popen.3" aria-label="popen,
   1332     section 3">popen(3)</a>, <a class="Xr" href="/editrc.5" aria-label="editrc,
   1333     section 5">editrc(5)</a>,
   1334     <a class="Xr" href="/services.5" aria-label="services, section
   1335     5">services(5)</a>, <a class="Xr" href="/ftp-proxy.8" aria-label="ftp-proxy,
   1336     section 8">ftp-proxy(8)</a>, <a class="Xr" href="/ftpd.8" aria-label="ftpd,
   1337     section 8">ftpd(8)</a></p>
   1338 </section>
   1339 <section class="Sh">
   1340 <h2 class="Sh" id="STANDARDS"><a class="permalink" href="#STANDARDS">STANDARDS</a></h2>
   1341 <p class="Pp"><cite class="Rs"><span class="RsA">J. Postel</span> and
   1342     <span class="RsA">J. Reynolds</span>, <span class="RsT">FILE TRANSFER
   1343     PROTOCOL (FTP)</span>, <span class="RsR">RFC 959</span>,
   1344     <span class="RsD">October 1985</span>.</cite></p>
   1345 <p class="Pp"><cite class="Rs"><span class="RsA">P. Hethmon</span>,
   1346     <span class="RsT">Extensions to FTP</span>, <span class="RsR">RFC
   1347     3659</span>, <span class="RsD">March 2007</span>.</cite></p>
   1348 </section>
   1349 <section class="Sh">
   1350 <h2 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h2>
   1351 <p class="Pp">The <code class="Nm">ftp</code> command appeared in
   1352     <span class="Ux">4.2BSD</span>.</p>
   1353 </section>
   1354 <section class="Sh">
   1355 <h2 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h2>
   1356 <p class="Pp">Correct execution of many commands depends upon proper behavior by
   1357     the remote server.</p>
   1358 <p class="Pp">In the recursive mode of <code class="Ic">mget</code>, files and
   1359     directories starting with whitespace are ignored because the list cannot be
   1360     parsed any other way.</p>
   1361 </section>
   1362 </main>
   1363 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
   1364   line"><span class="foot-left"></span><span class="foot-date">September 15,
   1365   2022</span> <span class="foot-os">OpenBSD-current</span></div>
   1366 </body>
   1367 </html>