add OpenBSD man HTML page - webdump_tests - Testfiles for webdump
 (HTM) git clone git://git.codemadness.org/webdump_tests
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit bb2a4ecc1a94a14c540671afe402e0dab0b5ec54
 (DIR) parent 3eb7893c950ae10cc4e8dbb092603e73470888ba
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Tue, 12 Sep 2023 22:22:32 +0200
       
       add OpenBSD man HTML page
       
       TODO:
       
       - indentation of nested <dl> elements look wrong.
       - support <button> tag?
       - support <select> and its default selected option?
       - support <section> as block element?
       
       Some thing to note, it uses a <var> variable, but this is handled as "inline"
       so its fine.
       
       Diffstat:
         A realworld/openbsd_man_ftp.html      |    1367 +++++++++++++++++++++++++++++++
       
       1 file changed, 1367 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/realworld/openbsd_man_ftp.html b/realworld/openbsd_man_ftp.html
       @@ -0,0 +1,1367 @@
       +<!DOCTYPE html>
       +<html>
       +<head>
       +  <meta charset="UTF-8"/>
       +  <meta name="viewport" content="width=device-width, initial-scale=1.0">
       +  <link rel="stylesheet" href="/mandoc.css" type="text/css" media="all">
       +  <title>ftp(1) - OpenBSD manual pages</title>
       +</head>
       +<body>
       +<header>
       +<section>
       +<h1><a href="https://www.openbsd.org/">OpenBSD</a> manual page server</h1>
       +</section>
       +<form role="search" action="/" method="get" autocomplete="off" autocapitalize="none">
       +  <fieldset>
       +    <legend>Manual Page Search Parameters</legend>
       +    <label>Search query:
       +      <input type="search" name="query" value="ftp" size="40">
       +    </label>
       +    <button type="submit" name="apropos" value="0">man</button>
       +    <button type="submit" name="apropos" value="1">apropos</button>
       +    <br/>
       +    <select name="sec" aria-label="Manual section">
       +      <option value="0">All Sections</option>
       +      <option value="1">1 - General Commands</option>
       +      <option value="2">2 - System Calls</option>
       +      <option value="3">3 - Library Functions</option>
       +      <option value="3p">3p - Perl Library</option>
       +      <option value="4">4 - Device Drivers</option>
       +      <option value="5">5 - File Formats</option>
       +      <option value="6">6 - Games</option>
       +      <option value="7">7 - Miscellaneous Information</option>
       +      <option value="8">8 - System Manager's Manual</option>
       +      <option value="9">9 - Kernel Developer's Manual</option>
       +    </select>
       +    <select name="arch" aria-label="CPU architecture">
       +      <option value="default" selected="selected">All Architectures</option>
       +      <option>amd64</option>
       +      <option>alpha</option>
       +      <option>armv7</option>
       +      <option>arm64</option>
       +      <option>hppa</option>
       +      <option>i386</option>
       +      <option>landisk</option>
       +      <option>loongson</option>
       +      <option>luna88k</option>
       +      <option>macppc</option>
       +      <option>mips64</option>
       +      <option>octeon</option>
       +      <option>powerpc64</option>
       +      <option>riscv64</option>
       +      <option>sparc64</option>
       +      <option>amiga</option>
       +      <option>arc</option>
       +      <option>armish</option>
       +      <option>arm32</option>
       +      <option>atari</option>
       +      <option>aviion</option>
       +      <option>beagle</option>
       +      <option>cats</option>
       +      <option>hppa64</option>
       +      <option>hp300</option>
       +      <option>ia64</option>
       +      <option>mac68k</option>
       +      <option>mvme68k</option>
       +      <option>mvme88k</option>
       +      <option>mvmeppc</option>
       +      <option>palm</option>
       +      <option>pc532</option>
       +      <option>pegasos</option>
       +      <option>pmax</option>
       +      <option>powerpc</option>
       +      <option>sgi</option>
       +      <option>socppc</option>
       +      <option>solbourne</option>
       +      <option>sparc</option>
       +      <option>sun3</option>
       +      <option>vax</option>
       +      <option>wgrisc</option>
       +      <option>x68k</option>
       +      <option>zaurus</option>
       +    </select>
       +    <select name="manpath" aria-label="Manual path">
       +      <option selected="selected">OpenBSD-current</option>
       +      <option>OpenBSD-7.2</option>
       +      <option>OpenBSD-7.1</option>
       +      <option>OpenBSD-7.0</option>
       +      <option>OpenBSD-6.9</option>
       +      <option>OpenBSD-6.8</option>
       +      <option>OpenBSD-6.7</option>
       +      <option>OpenBSD-6.6</option>
       +      <option>OpenBSD-6.5</option>
       +      <option>OpenBSD-6.4</option>
       +      <option>OpenBSD-6.3</option>
       +      <option>OpenBSD-6.2</option>
       +      <option>OpenBSD-6.1</option>
       +      <option>OpenBSD-6.0</option>
       +      <option>OpenBSD-5.9</option>
       +      <option>OpenBSD-5.8</option>
       +      <option>OpenBSD-5.7</option>
       +      <option>OpenBSD-5.6</option>
       +      <option>OpenBSD-5.5</option>
       +      <option>OpenBSD-5.4</option>
       +      <option>OpenBSD-5.3</option>
       +      <option>OpenBSD-5.2</option>
       +      <option>OpenBSD-5.1</option>
       +      <option>OpenBSD-5.0</option>
       +      <option>OpenBSD-4.9</option>
       +      <option>OpenBSD-4.8</option>
       +      <option>OpenBSD-4.7</option>
       +      <option>OpenBSD-4.6</option>
       +      <option>OpenBSD-4.5</option>
       +      <option>OpenBSD-4.4</option>
       +      <option>OpenBSD-4.3</option>
       +      <option>OpenBSD-4.2</option>
       +      <option>OpenBSD-4.1</option>
       +      <option>OpenBSD-4.0</option>
       +      <option>OpenBSD-3.9</option>
       +      <option>OpenBSD-3.8</option>
       +      <option>OpenBSD-3.7</option>
       +      <option>OpenBSD-3.6</option>
       +      <option>OpenBSD-3.5</option>
       +      <option>OpenBSD-3.4</option>
       +      <option>OpenBSD-3.3</option>
       +      <option>OpenBSD-3.2</option>
       +      <option>OpenBSD-3.1</option>
       +      <option>OpenBSD-3.0</option>
       +      <option>OpenBSD-2.9</option>
       +      <option>OpenBSD-2.8</option>
       +      <option>OpenBSD-2.7</option>
       +      <option>OpenBSD-2.6</option>
       +      <option>OpenBSD-2.5</option>
       +      <option>OpenBSD-2.4</option>
       +      <option>OpenBSD-2.3</option>
       +      <option>OpenBSD-2.2</option>
       +    </select>
       +  </fieldset>
       +</form>
       +</header>
       +<hr>
       +<div class="head" role="doc-pageheader" aria-label="Manual header
       +  line"><span class="head-ltitle">FTP(1)</span> <span class="head-vol">General
       +  Commands Manual</span> <span class="head-rtitle">FTP(1)</span></div>
       +<main class="manual-text">
       +<section class="Sh">
       +<h2 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h2>
       +<p class="Pp"><code class="Nm">ftp</code> &#x2014;
       +    <span class="Nd" role="doc-subtitle">Internet file transfer
       +  program</span></p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h2>
       +<table class="Nm">
       +  <tr>
       +    <td><code class="Nm">ftp</code></td>
       +    <td>[<code class="Fl">-46AadEegiMmnptVv</code>] [<code class="Fl">-D</code>
       +      <var class="Ar">title</var>] [<code class="Fl">-k</code>
       +      <var class="Ar">seconds</var>] [<code class="Fl">-P</code>
       +      <var class="Ar">port</var>] [<code class="Fl">-r</code>
       +      <var class="Ar">seconds</var>] [<code class="Fl">-s</code>
       +      <var class="Ar">sourceaddr</var>] [<var class="Ar">host</var>
       +      [<var class="Ar">port</var>]]</td>
       +  </tr>
       +</table>
       +<br/>
       +<table class="Nm">
       +  <tr>
       +    <td><code class="Nm">ftp</code></td>
       +    <td>[<code class="Fl">-C</code>] [<code class="Fl">-N</code>
       +      <var class="Ar">name</var>] [<code class="Fl">-o</code>
       +      <var class="Ar">output</var>] [<code class="Fl">-s</code>
       +      <var class="Ar">sourceaddr</var>]
       +      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>[/]
       +      <var class="Ar">...</var></td>
       +  </tr>
       +</table>
       +<br/>
       +<table class="Nm">
       +  <tr>
       +    <td><code class="Nm">ftp</code></td>
       +    <td>[<code class="Fl">-CTu</code>] [<code class="Fl">-c</code>
       +      <var class="Ar">cookie</var>] [<code class="Fl">-N</code>
       +      <var class="Ar">name</var>] [<code class="Fl">-o</code>
       +      <var class="Ar">output</var>] [<code class="Fl">-S</code>
       +      <var class="Ar">ssl_options</var>] [<code class="Fl">-s</code>
       +      <var class="Ar">sourceaddr</var>] [<code class="Fl">-U</code>
       +      <var class="Ar">useragent</var>] [<code class="Fl">-w</code>
       +      <var class="Ar">seconds</var>]
       +      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>
       +      <var class="Ar">...</var></td>
       +  </tr>
       +</table>
       +<br/>
       +<table class="Nm">
       +  <tr>
       +    <td><code class="Nm">ftp</code></td>
       +    <td>[<code class="Fl">-C</code>] [<code class="Fl">-N</code>
       +      <var class="Ar">name</var>] [<code class="Fl">-o</code>
       +      <var class="Ar">output</var>] [<code class="Fl">-s</code>
       +      <var class="Ar">sourceaddr</var>] file:<var class="Ar">file ...</var></td>
       +  </tr>
       +</table>
       +<br/>
       +<table class="Nm">
       +  <tr>
       +    <td><code class="Nm">ftp</code></td>
       +    <td>[<code class="Fl">-C</code>] [<code class="Fl">-N</code>
       +      <var class="Ar">name</var>] [<code class="Fl">-o</code>
       +      <var class="Ar">output</var>] [<code class="Fl">-s</code>
       +      <var class="Ar">sourceaddr</var>]
       +      <var class="Ar">host</var>:/<var class="Ar">file</var>[/]
       +      <var class="Ar">...</var></td>
       +  </tr>
       +</table>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h2>
       +<p class="Pp"><code class="Nm">ftp</code> is the user interface to the Internet
       +    standard File Transfer Protocol (FTP). The program allows a user to transfer
       +    files to and from a remote network site.</p>
       +<p class="Pp">The latter four usage formats will fetch a file using either the
       +    FTP, HTTP, or HTTPS protocols into the current directory. This is ideal for
       +    scripts. Refer to <a class="Sx" href="#AUTO_FETCHING_FILES">AUTO-FETCHING
       +    FILES</a> below for more information.</p>
       +<p class="Pp">The options are as follows:</p>
       +<dl class="Bl-tag">
       +  <dt id="4"><a class="permalink" href="#4"><code class="Fl">-4</code></a></dt>
       +  <dd>Forces <code class="Nm">ftp</code> to use IPv4 addresses only.</dd>
       +  <dt id="6"><a class="permalink" href="#6"><code class="Fl">-6</code></a></dt>
       +  <dd>Forces <code class="Nm">ftp</code> to use IPv6 addresses only.</dd>
       +  <dt id="A"><a class="permalink" href="#A"><code class="Fl">-A</code></a></dt>
       +  <dd>Force active mode FTP. By default, <code class="Nm">ftp</code> will try to
       +      use passive mode FTP and fall back to active mode if passive is not
       +      supported by the server. This option causes <code class="Nm">ftp</code> to
       +      always use an active connection. It is only useful for connecting to very
       +      old servers that do not implement passive mode properly.</dd>
       +  <dt id="a"><a class="permalink" href="#a"><code class="Fl">-a</code></a></dt>
       +  <dd>Causes <code class="Nm">ftp</code> to bypass the normal login procedure
       +      and use an anonymous login instead.</dd>
       +  <dt id="C"><a class="permalink" href="#C"><code class="Fl">-C</code></a></dt>
       +  <dd>Continue a previously interrupted file transfer.
       +      <code class="Nm">ftp</code> will continue transferring from an offset
       +      equal to the length of <var class="Ar">file</var>.
       +    <p class="Pp">Resuming HTTP(S) transfers are only supported if the remote
       +        server supports the &#x201C;Range&#x201D; header.</p>
       +  </dd>
       +  <dt id="c"><a class="permalink" href="#c"><code class="Fl">-c</code></a>
       +    <var class="Ar">cookie</var></dt>
       +  <dd>Load a Netscape-like cookiejar file for HTTP and HTTPS transfers. With
       +      this option relevant cookies from the jar are sent with each HTTP(S)
       +      request. Setting the <code class="Ev">http_cookies</code> environment
       +      variable has the same effect. If both the
       +      <code class="Ev">http_cookies</code> environment variable is set and the
       +      <code class="Fl">-c</code> argument is given, the latter takes
       +    precedence.</dd>
       +  <dt id="D"><a class="permalink" href="#D"><code class="Fl">-D</code></a>
       +    <var class="Ar">title</var></dt>
       +  <dd>Specify a short <var class="Ar">title</var> for the start of the progress
       +      bar.</dd>
       +  <dt id="d"><a class="permalink" href="#d"><code class="Fl">-d</code></a></dt>
       +  <dd>Enables debugging.</dd>
       +  <dt id="E"><a class="permalink" href="#E"><code class="Fl">-E</code></a></dt>
       +  <dd>Disables EPSV/EPRT command on IPv4 connections.</dd>
       +  <dt id="e"><a class="permalink" href="#e"><code class="Fl">-e</code></a></dt>
       +  <dd>Disables command line editing. Useful for Emacs ange-ftp.</dd>
       +  <dt id="g"><a class="permalink" href="#g"><code class="Fl">-g</code></a></dt>
       +  <dd>Disables file name globbing.</dd>
       +  <dt id="i"><a class="permalink" href="#i"><code class="Fl">-i</code></a></dt>
       +  <dd>Turns off interactive prompting during multiple file transfers.</dd>
       +  <dt id="k"><a class="permalink" href="#k"><code class="Fl">-k</code></a>
       +    <var class="Ar">seconds</var></dt>
       +  <dd>When greater than zero, sends a byte after each
       +      <var class="Ar">seconds</var> period over the control connection during
       +      long transfers, so that incorrectly configured network equipment won't
       +      aggressively drop it. The FTP protocol supports a
       +      <code class="Dv">NOOP</code> command that can be used for that purpose.
       +      This assumes the FTP server can deal with extra commands coming over the
       +      control connection during a transfer. Well-behaved servers queue those
       +      commands, and process them after the transfer. By default,
       +      <code class="Nm">ftp</code> will send a byte every 60 seconds.</dd>
       +  <dt id="M"><a class="permalink" href="#M"><code class="Fl">-M</code></a></dt>
       +  <dd>Causes <code class="Nm">ftp</code> to never display the progress meter in
       +      cases where it would do so by default.</dd>
       +  <dt id="m"><a class="permalink" href="#m"><code class="Fl">-m</code></a></dt>
       +  <dd>Causes <code class="Nm">ftp</code> to always display the progress meter in
       +      cases where it would not do so by default.</dd>
       +  <dt id="N"><a class="permalink" href="#N"><code class="Fl">-N</code></a>
       +    <var class="Ar">name</var></dt>
       +  <dd>Use this alternative name instead of <code class="Nm">ftp</code> in some
       +      error reports.</dd>
       +  <dt id="n"><a class="permalink" href="#n"><code class="Fl">-n</code></a></dt>
       +  <dd>Restrains <code class="Nm">ftp</code> from attempting
       +      &#x201C;auto-login&#x201D; upon initial connection. If auto-login is
       +      enabled, <code class="Nm">ftp</code> will check the
       +      <span class="Pa">.netrc</span> file (see below) in the user's home
       +      directory for an entry describing an account on the remote machine. If no
       +      entry exists, <code class="Nm">ftp</code> will prompt for the remote
       +      machine login name (default is the user identity on the local machine)
       +      and, if necessary, prompt for a password and an account with which to log
       +      in.</dd>
       +  <dt id="o"><a class="permalink" href="#o"><code class="Fl">-o</code></a>
       +    <var class="Ar">output</var></dt>
       +  <dd>When fetching a single file or URL, save the contents in
       +      <var class="Ar">output</var>. To make the contents go to stdout, use
       +      &#x2018;-&#x2019; for <var class="Ar">output</var>.</dd>
       +  <dt id="P"><a class="permalink" href="#P"><code class="Fl">-P</code></a>
       +    <var class="Ar">port</var></dt>
       +  <dd>Sets the port number to <var class="Ar">port</var>.</dd>
       +  <dt id="p"><a class="permalink" href="#p"><code class="Fl">-p</code></a></dt>
       +  <dd>Enable passive mode operation for use behind connection filtering
       +      firewalls. This option has been deprecated as <code class="Nm">ftp</code>
       +      now tries to use passive mode by default, falling back to active mode if
       +      the server does not support passive connections.</dd>
       +  <dt id="r"><a class="permalink" href="#r"><code class="Fl">-r</code></a>
       +    <var class="Ar">seconds</var></dt>
       +  <dd>Retry to connect if failed, pausing for number of
       +      <var class="Ar">seconds</var>.</dd>
       +  <dt id="S"><a class="permalink" href="#S"><code class="Fl">-S</code></a>
       +    <var class="Ar">ssl_options</var></dt>
       +  <dd>SSL/TLS options to use with HTTPS transfers. The following settings are
       +      available:
       +    <dl class="Bl-tag">
       +      <dt id="cafile"><a class="permalink" href="#cafile"><code class="Cm">cafile</code></a>=<var class="Ar">/path/to/cert.pem</var></dt>
       +      <dd>PEM encoded file containing CA certificates used for certificate
       +          validation.</dd>
       +      <dt id="capath"><a class="permalink" href="#capath"><code class="Cm">capath</code></a>=<var class="Ar">/path/to/certs/</var></dt>
       +      <dd>Directory containing PEM encoded CA certificates used for certificate
       +          validation. Such a directory can be prepared using the c_rehash script
       +          distributed with OpenSSL.</dd>
       +      <dt id="ciphers"><a class="permalink" href="#ciphers"><code class="Cm">ciphers</code></a>=<var class="Ar">cipher_list</var></dt>
       +      <dd>Specify the list of ciphers that will be used by
       +          <code class="Nm">ftp</code>. See the
       +          <a class="Xr" href="/openssl.1" aria-label="openssl, section
       +          1">openssl(1)</a> <code class="Cm">ciphers</code> subcommand.</dd>
       +      <dt id="depth"><a class="permalink" href="#depth"><code class="Cm">depth</code></a>=<var class="Ar">max_depth</var></dt>
       +      <dd>Maximum depth of the certificate chain allowed when performing
       +          validation.</dd>
       +      <dt id="do"><a class="permalink" href="#do"><code class="Cm">do</code></a></dt>
       +      <dd>Perform server certificate validation.</dd>
       +      <dt id="dont"><a class="permalink" href="#dont"><code class="Cm">dont</code></a></dt>
       +      <dd>Don't perform server certificate validation.</dd>
       +      <dt id="muststaple"><a class="permalink" href="#muststaple"><code class="Cm">muststaple</code></a></dt>
       +      <dd>Require the server to present a valid OCSP stapling in the TLS
       +          handshake.</dd>
       +      <dt id="noverifytime"><a class="permalink" href="#noverifytime"><code class="Cm">noverifytime</code></a></dt>
       +      <dd>Disable validation of certificate times and OCSP validation.</dd>
       +      <dt id="protocols"><a class="permalink" href="#protocols"><code class="Cm">protocols</code></a>=<var class="Ar">protocol_list</var></dt>
       +      <dd>Specify the TLS protocols that will be supported by
       +          <code class="Nm">ftp</code> (see
       +          <a class="Xr" href="/tls_config_parse_protocols.3" aria-label="tls_config_parse_protocols,
       +          section 3">tls_config_parse_protocols(3)</a> for details).</dd>
       +      <dt id="session"><a class="permalink" href="#session"><code class="Cm">session</code></a>=<var class="Ar">/path/to/session</var></dt>
       +      <dd>Specify a file to use for TLS session data. If this file has a
       +          non-zero length, the session data will be read from this file and the
       +          client will attempt to resume the TLS session with the server. Upon
       +          completion of a successful TLS handshake this file will be updated
       +          with new session data, if available. This file will be created if it
       +          does not already exist.</dd>
       +    </dl>
       +    <p class="Pp">By default, server certificate validation is performed, and if
       +        it fails <code class="Nm">ftp</code> will abort. If no
       +        <code class="Cm">cafile</code> or <code class="Cm">capath</code> setting
       +        is provided, <span class="Pa">/etc/ssl/cert.pem</span> will be used.</p>
       +  </dd>
       +  <dt id="s"><a class="permalink" href="#s"><code class="Fl">-s</code></a>
       +    <var class="Ar">sourceaddr</var></dt>
       +  <dd>Set the source address for connections, which is useful on machines with
       +      multiple interfaces.</dd>
       +  <dt id="T"><a class="permalink" href="#T"><code class="Fl">-T</code></a></dt>
       +  <dd>Send an &#x201C;If-Modified-Since&#x201D; header to the remote to
       +      determine if the remote file's timestamp has changed.</dd>
       +  <dt id="t"><a class="permalink" href="#t"><code class="Fl">-t</code></a></dt>
       +  <dd>Enables packet tracing.</dd>
       +  <dt id="U"><a class="permalink" href="#U"><code class="Fl">-U</code></a>
       +    <var class="Ar">useragent</var></dt>
       +  <dd>Set <var class="Ar">useragent</var> as the User-Agent for HTTP(S) URL
       +      requests. If not specified, the default User-Agent is &#x201C;OpenBSD
       +      ftp&#x201D;.</dd>
       +  <dt id="u"><a class="permalink" href="#u"><code class="Fl">-u</code></a></dt>
       +  <dd>Disable setting the local file's timestamps based on the
       +      &#x201C;Last-Modified&#x201D; header. By default the local file's
       +      timestamps are set to match those from the remote.</dd>
       +  <dt id="V"><a class="permalink" href="#V"><code class="Fl">-V</code></a></dt>
       +  <dd>Disable verbose mode, overriding the default of enabled when input is from
       +      a terminal.</dd>
       +  <dt id="v"><a class="permalink" href="#v"><code class="Fl">-v</code></a></dt>
       +  <dd>Enable verbose mode. This is the default if input is from a terminal.
       +      Forces <code class="Nm">ftp</code> to show all responses from the remote
       +      server, as well as report on data transfer statistics.</dd>
       +  <dt id="w"><a class="permalink" href="#w"><code class="Fl">-w</code></a>
       +    <var class="Ar">seconds</var></dt>
       +  <dd>Wait for <var class="Ar">seconds</var> for the remote server to connect
       +      before giving up.</dd>
       +</dl>
       +<p class="Pp">The host with which <code class="Nm">ftp</code> is to communicate
       +    may be specified on the command line. If this is done,
       +    <code class="Nm">ftp</code> will immediately attempt to establish a
       +    connection to an FTP server on that host; otherwise,
       +    <code class="Nm">ftp</code> will enter its command interpreter and await
       +    instructions from the user. When <code class="Nm">ftp</code> is awaiting
       +    commands, the prompt &#x201C;ftp&gt;&#x201D; is provided to the user. The
       +    following commands are recognized by <code class="Nm">ftp</code>:</p>
       +<dl class="Bl-tag">
       +  <dt id="!"><a class="permalink" href="#!"><code class="Ic">!</code></a>
       +    [<var class="Ar">command</var> [<var class="Ar">arg ...</var>]]</dt>
       +  <dd>Invoke an interactive shell on the local machine. If there are arguments,
       +      the first is taken to be a command to execute directly, with the rest of
       +      the arguments as its arguments.</dd>
       +  <dt id="$"><a class="permalink" href="#$"><code class="Ic">$</code></a>
       +    <var class="Ar">macro-name</var> [<var class="Ar">arg ...</var>]</dt>
       +  <dd>Execute the macro <var class="Ar">macro-name</var> that was defined with
       +      the <code class="Ic">macdef</code> command. Arguments are passed to the
       +      macro unglobbed.</dd>
       +  <dt id="?"><a class="permalink" href="#?"><code class="Ic">?</code></a>
       +    [<var class="Ar">command</var>]</dt>
       +  <dd>A synonym for <code class="Ic">help</code>.</dd>
       +  <dt id="account"><a class="permalink" href="#account"><code class="Ic">account</code></a>
       +    [<var class="Ar">password</var>]</dt>
       +  <dd>Supply a supplemental password required by a remote system for access to
       +      resources once a login has been successfully completed. If no argument is
       +      included, the user will be prompted for an account password in a
       +      non-echoing input mode.</dd>
       +  <dt id="append"><a class="permalink" href="#append"><code class="Ic">append</code></a>
       +    <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
       +  <dd>Append a local file to a file on the remote machine. If
       +      <var class="Ar">remote-file</var> is left unspecified, the local file name
       +      is used in naming the remote file after being altered by any
       +      <code class="Ic">ntrans</code> or <code class="Ic">nmap</code> setting.
       +      File transfer uses the current settings for <code class="Ic">type</code>,
       +      <code class="Ic">format</code>, <code class="Ic">mode</code>, and
       +      <code class="Ic">structure</code>.</dd>
       +  <dt id="ascii"><a class="permalink" href="#ascii"><code class="Ic">ascii</code></a></dt>
       +  <dd>Set the file transfer <code class="Ic">type</code> to network ASCII.</dd>
       +  <dt id="bell"><a class="permalink" href="#bell"><code class="Ic">bell</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Arrange that a bell be sounded after each file transfer command is
       +      completed.</dd>
       +  <dt id="binary"><a class="permalink" href="#binary"><code class="Ic">binary</code></a></dt>
       +  <dd>Set the file transfer <code class="Ic">type</code> to support binary image
       +      transfer. This is the default type.</dd>
       +  <dt id="bye"><a class="permalink" href="#bye"><code class="Ic">bye</code></a></dt>
       +  <dd>Terminate the FTP session with the remote server and exit
       +      <code class="Nm">ftp</code>. An end-of-file will also terminate the
       +      session and exit.</dd>
       +  <dt id="case"><a class="permalink" href="#case"><code class="Ic">case</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle remote computer file name case mapping during
       +      <code class="Ic">mget</code> commands. When <code class="Ic">case</code>
       +      is on (default is off), remote computer file names with all letters in
       +      upper case are written in the local directory with the letters mapped to
       +      lower case.</dd>
       +  <dt id="cd"><a class="permalink" href="#cd"><code class="Ic">cd</code></a>
       +    <var class="Ar">remote-directory</var></dt>
       +  <dd>Change the working directory on the remote machine to
       +      <var class="Ar">remote-directory</var>.</dd>
       +  <dt id="cdup"><a class="permalink" href="#cdup"><code class="Ic">cdup</code></a></dt>
       +  <dd>Change the remote machine working directory to the parent of the current
       +      remote machine working directory.</dd>
       +  <dt id="chmod"><a class="permalink" href="#chmod"><code class="Ic">chmod</code></a>
       +    <var class="Ar">mode file</var></dt>
       +  <dd>Change the permission modes of <var class="Ar">file</var> on the remote
       +      system to <var class="Ar">mode</var>.</dd>
       +  <dt id="close"><a class="permalink" href="#close"><code class="Ic">close</code></a></dt>
       +  <dd>Terminate the FTP session with the remote server and return to the command
       +      interpreter. Any defined macros are erased.</dd>
       +  <dt id="cr"><a class="permalink" href="#cr"><code class="Ic">cr</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle carriage return stripping during ASCII type file retrieval. Records
       +      are denoted by a carriage return/linefeed sequence during ASCII type file
       +      transfer. When <code class="Ic">cr</code> is on (the default), carriage
       +      returns are stripped from this sequence to conform with the
       +      <span class="Ux">UNIX</span> single linefeed record delimiter. Records on
       +      non-UNIX remote systems may contain single linefeeds; when an ASCII type
       +      transfer is made, these linefeeds may be distinguished from a record
       +      delimiter only when <code class="Ic">cr</code> is off.</dd>
       +  <dt id="debug"><a class="permalink" href="#debug"><code class="Ic">debug</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code> |
       +    <var class="Ar">debuglevel</var>]</dt>
       +  <dd>Toggle debugging mode. If an optional <var class="Ar">debuglevel</var> is
       +      specified, it is used to set the debugging level. When debugging is on,
       +      <code class="Nm">ftp</code> prints each command sent to the remote
       +      machine, preceded by the string
       +      &#x2018;<code class="Li">--&gt;</code>&#x2019;.</dd>
       +  <dt id="delete"><a class="permalink" href="#delete"><code class="Ic">delete</code></a>
       +    <var class="Ar">remote-file</var></dt>
       +  <dd>Delete the file <var class="Ar">remote-file</var> on the remote
       +    machine.</dd>
       +  <dt id="dir"><a class="permalink" href="#dir"><code class="Ic">dir</code></a>
       +    [<var class="Ar">remote-directory</var>
       +    [<var class="Ar">local-file</var>]]</dt>
       +  <dd>A synonym for <code class="Ic">ls</code>.</dd>
       +  <dt id="disconnect"><a class="permalink" href="#disconnect"><code class="Ic">disconnect</code></a></dt>
       +  <dd>A synonym for <code class="Ic">close</code>.</dd>
       +  <dt id="edit"><a class="permalink" href="#edit"><code class="Ic">edit</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle command line editing, and context sensitive command and file
       +      completion. This is automatically enabled if input is from a terminal, and
       +      disabled otherwise.</dd>
       +  <dt id="epsv4"><a class="permalink" href="#epsv4"><code class="Ic">epsv4</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle use of EPSV/EPRT command on IPv4 connection.</dd>
       +  <dt id="exit"><a class="permalink" href="#exit"><code class="Ic">exit</code></a></dt>
       +  <dd>A synonym for <code class="Ic">bye</code>.</dd>
       +  <dt id="form"><a class="permalink" href="#form"><code class="Ic">form</code></a>
       +    <var class="Ar">format</var></dt>
       +  <dd>Set the file transfer <code class="Ic">form</code> to
       +      <var class="Ar">format</var>. The default format is
       +    &#x201C;file&#x201D;.</dd>
       +  <dt id="ftp"><a class="permalink" href="#ftp"><code class="Ic">ftp</code></a>
       +    <var class="Ar">host</var> [<var class="Ar">port</var>]</dt>
       +  <dd>A synonym for <code class="Ic">open</code>.</dd>
       +  <dt id="gate"><a class="permalink" href="#gate"><code class="Ic">gate</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code> |
       +    <var class="Ar">host</var> [<var class="Ar">port</var>]]</dt>
       +  <dd>Toggle gate-ftp mode. This will not be permitted if the gate-ftp server
       +      hasn't been set (either explicitly by the user, or from the
       +      <code class="Ev">FTPSERVER</code> environment variable). If
       +      <var class="Ar">host</var> is given, then gate-ftp mode will be enabled,
       +      and the gate-ftp server will be set to <var class="Ar">host</var>. If
       +      <var class="Ar">port</var> is also given, that will be used as the port to
       +      connect to on the gate-ftp server.</dd>
       +  <dt id="get"><a class="permalink" href="#get"><code class="Ic">get</code></a>
       +    <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
       +  <dd>Retrieve the <var class="Ar">remote-file</var> and store it on the local
       +      machine. If the local file name is not specified, it is given the same
       +      name it has on the remote machine, subject to alteration by the current
       +      <code class="Ic">case</code>, <code class="Ic">ntrans</code>, and
       +      <code class="Ic">nmap</code> settings. The current settings for
       +      <code class="Ic">type</code>, <code class="Ic">form</code>,
       +      <code class="Ic">mode</code>, and <code class="Ic">structure</code> are
       +      used while transferring the file.</dd>
       +  <dt id="glob"><a class="permalink" href="#glob"><code class="Ic">glob</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle filename expansion for <code class="Ic">mdelete</code>,
       +      <code class="Ic">mget</code> and <code class="Ic">mput</code>. If globbing
       +      is turned off with <code class="Ic">glob</code>, the file name arguments
       +      are taken literally and not expanded. Globbing for
       +      <code class="Ic">mput</code> is done as in
       +      <a class="Xr" href="/csh.1" aria-label="csh, section 1">csh(1)</a>. For
       +      <code class="Ic">mdelete</code> and <code class="Ic">mget</code>, each
       +      remote file name is expanded separately on the remote machine and the
       +      lists are not merged. Expansion of a directory name is likely to be
       +      different from expansion of the name of an ordinary file: the exact result
       +      depends on the foreign operating system and FTP server, and can be
       +      previewed by doing &#x201C;mls remote-files -&#x201D;. Note:
       +      <code class="Ic">mget</code> and <code class="Ic">mput</code> are not
       +      meant to transfer entire directory subtrees of files. That can be done by
       +      transferring a <a class="Xr" href="/tar.1" aria-label="tar, section
       +      1">tar(1)</a> archive of the subtree (in binary mode).</dd>
       +  <dt id="hash"><a class="permalink" href="#hash"><code class="Ic">hash</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code> |
       +    <var class="Ar">size</var>]</dt>
       +  <dd>Toggle hash mark (&#x2018;<code class="Li">#</code>&#x2019;) printing for
       +      each data block transferred. The size of a data block defaults to 1024
       +      bytes. This can be changed by specifying <var class="Ar">size</var> in
       +      bytes.</dd>
       +  <dt id="help"><a class="permalink" href="#help"><code class="Ic">help</code></a>
       +    [<var class="Ar">command</var>]</dt>
       +  <dd>Print an informative message about the meaning of
       +      <var class="Ar">command</var>. If no argument is given,
       +      <code class="Nm">ftp</code> prints a list of the known commands.</dd>
       +  <dt id="idle"><a class="permalink" href="#idle"><code class="Ic">idle</code></a>
       +    [<var class="Ar">seconds</var>]</dt>
       +  <dd>Set the inactivity timer on the remote server to
       +      <var class="Ar">seconds</var> seconds. If <var class="Ar">seconds</var> is
       +      omitted, the current inactivity timer is printed.</dd>
       +  <dt id="lcd"><a class="permalink" href="#lcd"><code class="Ic">lcd</code></a>
       +    [<var class="Ar">local-directory</var>]</dt>
       +  <dd>Change the working directory on the local machine. If no
       +      <var class="Ar">local-directory</var> is specified, the user's home
       +      directory is used.</dd>
       +  <dt id="less"><a class="permalink" href="#less"><code class="Ic">less</code></a>
       +    <var class="Ar">file</var></dt>
       +  <dd>A synonym for <code class="Ic">page</code>.</dd>
       +  <dt id="lpwd"><a class="permalink" href="#lpwd"><code class="Ic">lpwd</code></a></dt>
       +  <dd>Print the working directory on the local machine.</dd>
       +  <dt id="ls"><a class="permalink" href="#ls"><code class="Ic">ls</code></a>
       +    [<var class="Ar">remote-directory</var>
       +    [<var class="Ar">local-file</var>]]</dt>
       +  <dd>Print a listing of the contents of a directory on the remote machine. The
       +      listing includes any system-dependent information that the server chooses
       +      to include; for example, most <span class="Ux">UNIX</span> systems will
       +      produce output from the command &#x2018;<code class="Li">ls
       +      -l</code>&#x2019;. If <var class="Ar">remote-directory</var> is left
       +      unspecified, the current working directory is used. If interactive
       +      prompting is on, <code class="Nm">ftp</code> will prompt the user to
       +      verify that the last argument is indeed the target local file for
       +      receiving <code class="Ic">ls</code> output. If no local file is
       +      specified, or if <var class="Ar">local-file</var> is &#x2018;-&#x2019;,
       +      the output is sent to the terminal.</dd>
       +  <dt id="macdef"><a class="permalink" href="#macdef"><code class="Ic">macdef</code></a>
       +    <var class="Ar">macro-name</var></dt>
       +  <dd>Define a macro. Subsequent lines are stored as the macro
       +      <var class="Ar">macro-name</var>; a null line (consecutive newline
       +      characters in a file or carriage returns from the terminal) terminates
       +      macro input mode. There is a limit of 16 macros and 4096 total characters
       +      in all defined macros. Macro names can be a maximum of 8 characters.
       +      Macros are only applicable to the current session they are defined in (or
       +      if defined outside a session, to the session invoked with the next
       +      <code class="Ic">open</code> command), and remain defined until a
       +      <code class="Ic">close</code> command is executed. To invoke a macro, use
       +      the <code class="Ic">$</code> command (see above).
       +    <p class="Pp">The macro processor interprets
       +        &#x2018;<code class="Li">$</code>&#x2019; and
       +        &#x2018;<code class="Li">\</code>&#x2019; as special characters. A
       +        &#x2018;<code class="Li">$</code>&#x2019; followed by a number (or
       +        numbers) is replaced by the corresponding argument on the macro
       +        invocation command line. A &#x2018;<code class="Li">$</code>&#x2019;
       +        followed by an &#x2018;i&#x2019; tells the macro processor that the
       +        executing macro is to be looped. On the first pass
       +        &#x2018;<code class="Li">$i</code>&#x2019; is replaced by the first
       +        argument on the macro invocation command line, on the second pass it is
       +        replaced by the second argument, and so on. A
       +        &#x2018;<code class="Li">\</code>&#x2019; followed by any character is
       +        replaced by that character. Use the
       +        &#x2018;<code class="Li">\</code>&#x2019; to prevent special treatment
       +        of the &#x2018;<code class="Li">$</code>&#x2019;.</p>
       +  </dd>
       +  <dt id="mdelete"><a class="permalink" href="#mdelete"><code class="Ic">mdelete</code></a>
       +    [<var class="Ar">remote-files</var>]</dt>
       +  <dd>Delete the <var class="Ar">remote-files</var> on the remote machine.</dd>
       +  <dt id="mdir"><a class="permalink" href="#mdir"><code class="Ic">mdir</code></a>
       +    <var class="Ar">remote-files local-file</var></dt>
       +  <dd>A synonym for <code class="Ic">mls</code>.</dd>
       +  <dt id="mget"><a class="permalink" href="#mget"><code class="Ic">mget</code></a>
       +    [<code class="Fl">-cnr</code>] [<code class="Fl">-d</code>
       +    <var class="Ar">depth</var>] <var class="Ar">remote-files</var></dt>
       +  <dd>Expand the <var class="Ar">remote-files</var> on the remote machine and do
       +      a <code class="Ic">get</code> for each file name thus produced. See
       +      <code class="Ic">glob</code> for details on the filename expansion.
       +      Resulting file names will then be processed according to
       +      <code class="Ic">case</code>, <code class="Ic">ntrans</code>, and
       +      <code class="Ic">nmap</code> settings. Files are transferred into the
       +      local working directory, which can be changed with
       +      &#x2018;<code class="Li">lcd directory</code>&#x2019;; new local
       +      directories can be created with &#x2018;<code class="Li">! mkdir
       +      directory</code>&#x2019;.
       +    <p class="Pp">The options are as follows:</p>
       +    <dl class="Bl-tag">
       +      <dt id="c~2"><a class="permalink" href="#c~2"><code class="Fl">-c</code></a></dt>
       +      <dd>Use <code class="Ic">reget</code> instead of
       +          <code class="Ic">get</code>.</dd>
       +      <dt id="d~2"><a class="permalink" href="#d~2"><code class="Fl">-d</code></a>
       +        <var class="Ar">depth</var></dt>
       +      <dd>Specify the maximum recursion level <var class="Ar">depth</var>. The
       +          default is 0, which means unlimited.</dd>
       +      <dt id="n~2"><a class="permalink" href="#n~2"><code class="Fl">-n</code></a></dt>
       +      <dd>Use <code class="Ic">newer</code> instead of
       +          <code class="Ic">get</code>.</dd>
       +      <dt id="r~2"><a class="permalink" href="#r~2"><code class="Fl">-r</code></a></dt>
       +      <dd>Recursively descend the directory tree, transferring all files and
       +          directories.</dd>
       +    </dl>
       +  </dd>
       +  <dt id="mkdir"><a class="permalink" href="#mkdir"><code class="Ic">mkdir</code></a>
       +    <var class="Ar">directory-name</var></dt>
       +  <dd>Make a directory on the remote machine.</dd>
       +  <dt id="mls"><a class="permalink" href="#mls"><code class="Ic">mls</code></a>
       +    <var class="Ar">remote-files local-file</var></dt>
       +  <dd>Like <code class="Ic">ls</code>, except multiple remote files may be
       +      specified, and the <var class="Ar">local-file</var> must be specified. If
       +      interactive prompting is on, <code class="Nm">ftp</code> will prompt the
       +      user to verify that the last argument is indeed the target local file for
       +      receiving <code class="Ic">mls</code> output.</dd>
       +  <dt id="mode"><a class="permalink" href="#mode"><code class="Ic">mode</code></a>
       +    [<var class="Ar">mode-name</var>]</dt>
       +  <dd>Set the file transfer <code class="Ic">mode</code> to
       +      <var class="Ar">mode-name</var>. The default mode is
       +      &#x201C;stream&#x201D; mode.</dd>
       +  <dt id="modtime"><a class="permalink" href="#modtime"><code class="Ic">modtime</code></a>
       +    <var class="Ar">file</var></dt>
       +  <dd>Show the last modification time of <var class="Ar">file</var> on the
       +      remote machine.</dd>
       +  <dt id="more"><a class="permalink" href="#more"><code class="Ic">more</code></a>
       +    <var class="Ar">file</var></dt>
       +  <dd>A synonym for <code class="Ic">page</code>.</dd>
       +  <dt id="mput"><a class="permalink" href="#mput"><code class="Ic">mput</code></a>
       +    [<code class="Fl">-cr</code>] [<code class="Fl">-d</code>
       +    <var class="Ar">depth</var>] <var class="Ar">local-files</var></dt>
       +  <dd>Expand wild cards in the list of local files given as arguments and do a
       +      <code class="Ic">put</code> for each file in the resulting list. See
       +      <code class="Ic">glob</code> for details of filename expansion. Resulting
       +      file names will then be processed according to
       +      <code class="Ic">ntrans</code> and <code class="Ic">nmap</code> settings.
       +    <p class="Pp">The options are as follows:</p>
       +    <dl class="Bl-tag">
       +      <dt id="c~3"><a class="permalink" href="#c~3"><code class="Fl">-c</code></a></dt>
       +      <dd>Use <code class="Ic">reput</code> instead of
       +          <code class="Ic">put</code>.</dd>
       +      <dt id="d~3"><a class="permalink" href="#d~3"><code class="Fl">-d</code></a>
       +        <var class="Ar">depth</var></dt>
       +      <dd>Specify the maximum recursion level <var class="Ar">depth</var>. The
       +          default is 0, which means unlimited.</dd>
       +      <dt id="r~3"><a class="permalink" href="#r~3"><code class="Fl">-r</code></a></dt>
       +      <dd>Recursively descend the directory tree, transferring all files and
       +          directories.</dd>
       +    </dl>
       +  </dd>
       +  <dt id="msend"><a class="permalink" href="#msend"><code class="Ic">msend</code></a>
       +    [<code class="Fl">-c</code>] <var class="Ar">local-files</var></dt>
       +  <dd>A synonym for <code class="Ic">mput</code>.</dd>
       +  <dt id="newer"><a class="permalink" href="#newer"><code class="Ic">newer</code></a>
       +    <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
       +  <dd>Get the file only if the modification time of the remote file is more
       +      recent than the file on the current system. If the file does not exist on
       +      the current system, the remote file is considered
       +      <code class="Ic">newer</code>. Otherwise, this command is identical to
       +      <var class="Ar">get</var>.</dd>
       +  <dt id="nlist"><a class="permalink" href="#nlist"><code class="Ic">nlist</code></a>
       +    [<var class="Ar">remote-directory</var>
       +    [<var class="Ar">local-file</var>]]</dt>
       +  <dd>Print a list of the files in a directory on the remote machine. If
       +      <var class="Ar">remote-directory</var> is left unspecified, the current
       +      working directory is used. If interactive prompting is on,
       +      <code class="Nm">ftp</code> will prompt the user to verify that the last
       +      argument is indeed the target local file for receiving
       +      <code class="Ic">nlist</code> output. If no local file is specified, or if
       +      <var class="Ar">local-file</var> is &#x2018;-&#x2019;, the output is sent
       +      to the terminal. Note that on some servers, the
       +      <code class="Ic">nlist</code> command will only return information on
       +      normal files (not directories or special files).</dd>
       +  <dt id="nmap"><a class="permalink" href="#nmap"><code class="Ic">nmap</code></a>
       +    [<var class="Ar">inpattern outpattern</var>]</dt>
       +  <dd>Set or unset the filename mapping mechanism. If no arguments are
       +      specified, the filename mapping mechanism is unset. If arguments are
       +      specified, remote filenames are mapped during <code class="Ic">mput</code>
       +      commands and <code class="Ic">put</code> commands issued without a
       +      specified remote target filename. If arguments are specified, local
       +      filenames are mapped during <code class="Ic">mget</code> commands and
       +      <code class="Ic">get</code> commands issued without a specified local
       +      target filename. This command is useful when connecting to a non-UNIX
       +      remote computer with different file naming conventions or practices.
       +    <p class="Pp">The mapping follows the pattern set by
       +        <var class="Ar">inpattern</var> and <var class="Ar">outpattern</var>.
       +        <var class="Ar">inpattern</var> is a template for incoming filenames
       +        (which may have already been processed according to the
       +        <code class="Ic">ntrans</code> and <code class="Ic">case</code>
       +        settings). Variable templating is accomplished by including the
       +        sequences &#x2018;<code class="Li">$1</code>&#x2019;,
       +        &#x2018;<code class="Li">$2</code>&#x2019;, ...,
       +        &#x2018;<code class="Li">$9</code>&#x2019; in
       +        <var class="Ar">inpattern</var>. Use
       +        &#x2018;<code class="Li">\</code>&#x2019; to prevent this special
       +        treatment of the &#x2018;<code class="Li">$</code>&#x2019; character.
       +        All other characters are treated literally, and are used to determine
       +        the <code class="Ic">nmap</code> <var class="Ar">inpattern</var>
       +        variable values.</p>
       +    <p class="Pp">For example, given <var class="Ar">inpattern</var> $1.$2 and
       +        the remote file name &quot;mydata.data&quot;, $1 would have the value
       +        &quot;mydata&quot;, and $2 would have the value &quot;data&quot;. The
       +        <var class="Ar">outpattern</var> determines the resulting mapped
       +        filename. The sequences &#x2018;<code class="Li">$1</code>&#x2019;,
       +        &#x2018;<code class="Li">$2</code>&#x2019;, ...,
       +        &#x2018;<code class="Li">$9</code>&#x2019; are replaced by any value
       +        resulting from the <var class="Ar">inpattern</var> template. The
       +        sequence &#x2018;<code class="Li">$0</code>&#x2019; is replaced by the
       +        original filename. Additionally, the sequence
       +        &#x2018;[<var class="Ar">seq1</var>, <var class="Ar">seq2</var>]&#x2019;
       +        is replaced by <var class="Ar">seq1</var> if <var class="Ar">seq1</var>
       +        is not a null string; otherwise it is replaced by
       +        <var class="Ar">seq2</var>. For example:</p>
       +    <p class="Pp"></p>
       +    <div class="Bd Bd-indent"><code class="Li">nmap $1.$2.$3
       +      [$1,$2].[$2,file]</code></div>
       +    <p class="Pp">This command would yield the output filename
       +        <span class="Pa">myfile.data</span> for input filenames
       +        <span class="Pa">myfile.data</span> and
       +        <span class="Pa">myfile.data.old</span>;
       +        <span class="Pa">myfile.file</span> for the input filename
       +        <span class="Pa">myfile</span>; and
       +        <span class="Pa">myfile.myfile</span> for the input filename
       +        <span class="Pa">.myfile</span>. Spaces may be included in
       +        <var class="Ar">outpattern</var> by quoting them, as in the following
       +        example:</p>
       +    <div class="Bd Pp Bd-indent Li">
       +    <pre>nmap $1.$2 &quot;$1 $2&quot;</pre>
       +    </div>
       +    <p class="Pp">Use the &#x2018;<code class="Li">\</code>&#x2019; character to
       +        prevent special treatment of the
       +        &#x2018;<code class="Li">$</code>&#x2019;,
       +        &#x2018;<code class="Li">[</code>&#x2019;,
       +        &#x2018;<code class="Li">]</code>&#x2019;, and
       +        &#x2018;<code class="Li">,</code>&#x2019; characters.</p>
       +  </dd>
       +  <dt id="ntrans"><a class="permalink" href="#ntrans"><code class="Ic">ntrans</code></a>
       +    [<var class="Ar">inchars</var> [<var class="Ar">outchars</var>]]</dt>
       +  <dd>Set or unset the filename character translation mechanism. If no arguments
       +      are specified, the filename character translation mechanism is unset. If
       +      arguments are specified, characters in remote filenames are translated
       +      during <code class="Ic">mput</code> commands and
       +      <code class="Ic">put</code> commands issued without a specified remote
       +      target filename. If arguments are specified, characters in local filenames
       +      are translated during <code class="Ic">mget</code> commands and
       +      <code class="Ic">get</code> commands issued without a specified local
       +      target filename. This command is useful when connecting to a non-UNIX
       +      remote computer with different file naming conventions or practices.
       +      Characters in a filename matching a character in
       +      <var class="Ar">inchars</var> are replaced with the corresponding
       +      character in <var class="Ar">outchars</var>. If the character's position
       +      in <var class="Ar">inchars</var> is longer than the length of
       +      <var class="Ar">outchars</var>, the character is deleted from the file
       +      name.</dd>
       +  <dt id="open"><a class="permalink" href="#open"><code class="Ic">open</code></a>
       +    <var class="Ar">host</var> [<var class="Ar">port</var>]</dt>
       +  <dd>Establish a connection to the specified <var class="Ar">host</var> FTP
       +      server. An optional port number may be supplied, in which case
       +      <code class="Nm">ftp</code> will attempt to contact an FTP server at that
       +      port. If the <code class="Ic">auto-login</code> option is on (default),
       +      <code class="Nm">ftp</code> will also attempt to automatically log the
       +      user in to the FTP server (see below).</dd>
       +  <dt id="page"><a class="permalink" href="#page"><code class="Ic">page</code></a>
       +    <var class="Ar">file</var></dt>
       +  <dd>Retrieve <code class="Ic">file</code> and display with the program defined
       +      in <code class="Ev">PAGER</code> (defaulting to
       +      <a class="Xr" href="/more.1" aria-label="more, section 1">more(1)</a> if
       +      <code class="Ev">PAGER</code> is null or not defined).</dd>
       +  <dt id="passive"><a class="permalink" href="#passive"><code class="Ic">passive</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle passive mode. If passive mode is turned on (default is on),
       +      <code class="Nm">ftp</code> will send a <code class="Dv">EPSV</code>
       +      command for all data connections instead of the usual
       +      <code class="Dv">PORT</code> command. The <code class="Dv">PASV</code>
       +      command requests that the remote server open a port for the data
       +      connection and return the address of that port. The remote server listens
       +      on that port and the client connects to it. When using the more
       +      traditional <code class="Dv">PORT</code> command, the client listens on a
       +      port and sends that address to the remote server, who connects back to it.
       +      Passive mode is useful when using <code class="Nm">ftp</code> through a
       +      gateway router or host that controls the directionality of traffic. (Note
       +      that though FTP servers are required to support the
       +      <code class="Dv">PASV</code> command by RFC 1123, some do not.)</dd>
       +  <dt id="preserve"><a class="permalink" href="#preserve"><code class="Ic">preserve</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle preservation of modification times on retrieved files.</dd>
       +  <dt id="progress"><a class="permalink" href="#progress"><code class="Ic">progress</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle display of transfer progress bar. The progress bar will be disabled
       +      for a transfer that has <var class="Ar">local-file</var> as
       +      &#x2018;-&#x2019; or a command that starts with &#x2018;|&#x2019;. Refer
       +      to <a class="Sx" href="#FILE_NAMING_CONVENTIONS">FILE NAMING
       +      CONVENTIONS</a> for more information.</dd>
       +  <dt id="prompt"><a class="permalink" href="#prompt"><code class="Ic">prompt</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle interactive prompting. Interactive prompting occurs during multiple
       +      file transfers to allow the user to selectively retrieve or store files.
       +      If prompting is turned off (default is on), any
       +      <code class="Ic">mget</code> or <code class="Ic">mput</code> will transfer
       +      all files, and any <code class="Ic">mdelete</code> will delete all files.
       +    <p class="Pp">When prompting is on, the following commands are available at
       +        a prompt:</p>
       +    <div class="Bd-indent">
       +    <dl class="Bl-tag">
       +      <dt><code class="Ic">?</code></dt>
       +      <dd>Print help message.</dd>
       +      <dt id="a~2"><a class="permalink" href="#a~2"><code class="Ic">a</code></a></dt>
       +      <dd>Answer &#x201C;yes&#x201D; to the current file and automatically
       +          answer &#x201C;yes&#x201D; to any remaining files for the current
       +          command.</dd>
       +      <dt id="n~3"><a class="permalink" href="#n~3"><code class="Ic">n</code></a></dt>
       +      <dd>Do not transfer the file.</dd>
       +      <dt id="p~2"><a class="permalink" href="#p~2"><code class="Ic">p</code></a></dt>
       +      <dd>Answer &#x201C;yes&#x201D; to the current file and turn off prompt
       +          mode (as if &#x201C;prompt off&#x201D; had been given).</dd>
       +      <dt id="q"><a class="permalink" href="#q"><code class="Ic">q</code></a></dt>
       +      <dd>Answer &#x201C;no&#x201D; to the current file and automatically answer
       +          &#x201C;no&#x201D; to any remaining files for the current
       +        command.</dd>
       +      <dt id="y"><a class="permalink" href="#y"><code class="Ic">y</code></a></dt>
       +      <dd>Transfer the file.</dd>
       +    </dl>
       +    </div>
       +  </dd>
       +  <dt id="proxy"><a class="permalink" href="#proxy"><code class="Ic">proxy</code></a>
       +    <var class="Ar">command</var></dt>
       +  <dd>Execute an FTP command on a secondary control connection. This command
       +      allows simultaneous connection to two remote FTP servers for transferring
       +      files between the two servers. The first <code class="Ic">proxy</code>
       +      command should be an <code class="Ic">open</code>, to establish the
       +      secondary control connection. Enter the command <code class="Ic">proxy
       +      ?</code> to see other FTP commands executable on the secondary connection.
       +      The following commands behave differently when prefaced by
       +      <code class="Ic">proxy</code>: <code class="Ic">open</code> will not
       +      define new macros during the auto-login process;
       +      <code class="Ic">close</code> will not erase existing macro definitions;
       +      <code class="Ic">get</code> and <code class="Ic">mget</code> transfer
       +      files from the host on the primary control connection to the host on the
       +      secondary control connection; and <code class="Ic">put</code>,
       +      <code class="Ic">mput</code>, and <code class="Ic">append</code> transfer
       +      files from the host on the secondary control connection to the host on the
       +      primary control connection. Third party file transfers depend upon support
       +      of the FTP protocol <code class="Dv">PASV</code> command by the server on
       +      the secondary control connection.</dd>
       +  <dt id="put"><a class="permalink" href="#put"><code class="Ic">put</code></a>
       +    <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
       +  <dd>Store a local file on the remote machine. If
       +      <var class="Ar">remote-file</var> is left unspecified, the local file name
       +      is used after processing according to any <code class="Ic">ntrans</code>
       +      or <code class="Ic">nmap</code> settings in naming the remote file. File
       +      transfer uses the current settings for <code class="Ic">type</code>,
       +      <code class="Ic">format</code>, <code class="Ic">mode</code>, and
       +      <code class="Ic">structure</code>.</dd>
       +  <dt id="pwd"><a class="permalink" href="#pwd"><code class="Ic">pwd</code></a></dt>
       +  <dd>Print the name of the current working directory on the remote
       +    machine.</dd>
       +  <dt id="quit"><a class="permalink" href="#quit"><code class="Ic">quit</code></a></dt>
       +  <dd>A synonym for <code class="Ic">bye</code>.</dd>
       +  <dt id="quote"><a class="permalink" href="#quote"><code class="Ic">quote</code></a>
       +    <var class="Ar">arg ...</var></dt>
       +  <dd>The arguments specified are sent, verbatim, to the remote FTP server.</dd>
       +  <dt id="recv"><a class="permalink" href="#recv"><code class="Ic">recv</code></a>
       +    <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
       +  <dd>A synonym for <code class="Ic">get</code>.</dd>
       +  <dt id="reget"><a class="permalink" href="#reget"><code class="Ic">reget</code></a>
       +    <var class="Ar">remote-file</var> [<var class="Ar">local-file</var>]</dt>
       +  <dd>Reget acts like get, except that if <var class="Ar">local-file</var>
       +      exists and is smaller than <var class="Ar">remote-file</var>,
       +      <var class="Ar">local-file</var> is presumed to be a partially transferred
       +      copy of <var class="Ar">remote-file</var> and the transfer is continued
       +      from the apparent point of failure. This command is useful when
       +      transferring very large files over networks that are prone to dropping
       +      connections.</dd>
       +  <dt id="rename"><a class="permalink" href="#rename"><code class="Ic">rename</code></a>
       +    <var class="Ar">from-name to-name</var></dt>
       +  <dd>Rename the file <var class="Ar">from-name</var> on the remote machine to
       +      the file <var class="Ar">to-name</var>.</dd>
       +  <dt id="reput"><a class="permalink" href="#reput"><code class="Ic">reput</code></a>
       +    <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
       +  <dd>Reput acts like put, except that if <var class="Ar">remote-file</var>
       +      exists and is smaller than <var class="Ar">local-file</var>,
       +      <var class="Ar">remote-file</var> is presumed to be a partially
       +      transferred copy of <var class="Ar">local-file</var> and the transfer is
       +      continued from the apparent point of failure. This command is useful when
       +      transferring very large files over networks that are prone to dropping
       +      connections.</dd>
       +  <dt id="reset"><a class="permalink" href="#reset"><code class="Ic">reset</code></a></dt>
       +  <dd>Clear reply queue. This command re-synchronizes command/reply sequencing
       +      with the remote FTP server. Resynchronization may be necessary following a
       +      violation of the FTP protocol by the remote server.</dd>
       +  <dt id="restart"><a class="permalink" href="#restart"><code class="Ic">restart</code></a>
       +    <var class="Ar">marker</var></dt>
       +  <dd>Restart the immediately following <code class="Ic">get</code> or
       +      <code class="Ic">put</code> at the indicated <var class="Ar">marker</var>.
       +      On <span class="Ux">UNIX</span> systems, <var class="Ar">marker</var> is
       +      usually a byte offset into the file.</dd>
       +  <dt id="rhelp"><a class="permalink" href="#rhelp"><code class="Ic">rhelp</code></a>
       +    [<var class="Ar">command-name</var>]</dt>
       +  <dd>Request help from the remote FTP server. If a
       +      <var class="Ar">command-name</var> is specified, it is supplied to the
       +      server as well.</dd>
       +  <dt id="rmdir"><a class="permalink" href="#rmdir"><code class="Ic">rmdir</code></a>
       +    <var class="Ar">directory-name</var></dt>
       +  <dd>Delete a directory on the remote machine.</dd>
       +  <dt id="rstatus"><a class="permalink" href="#rstatus"><code class="Ic">rstatus</code></a>
       +    [<var class="Ar">file</var>]</dt>
       +  <dd>With no arguments, show status of remote machine. If
       +      <var class="Ar">file</var> is specified, show status of
       +      <var class="Ar">file</var> on remote machine.</dd>
       +  <dt id="runique"><a class="permalink" href="#runique"><code class="Ic">runique</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle storing of files on the local system with unique filenames. If a
       +      file already exists with a name equal to the target local filename for a
       +      <code class="Ic">get</code> or <code class="Ic">mget</code> command, a
       +      &#x201C;.1&#x201D; is appended to the name. If the resulting name matches
       +      another existing file, a &#x201C;.2&#x201D; is appended to the original
       +      name. If this process continues up to &#x201C;.99&#x201D;, an error
       +      message is printed, and the transfer does not take place. The generated
       +      unique filename will be reported. Note that
       +      <code class="Ic">runique</code> will not affect local files generated from
       +      a shell command (see below). The default value is off.</dd>
       +  <dt id="send"><a class="permalink" href="#send"><code class="Ic">send</code></a>
       +    <var class="Ar">local-file</var> [<var class="Ar">remote-file</var>]</dt>
       +  <dd>A synonym for <code class="Ic">put</code>.</dd>
       +  <dt id="sendport"><a class="permalink" href="#sendport"><code class="Ic">sendport</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle the use of <code class="Dv">PORT</code> commands. By default,
       +      <code class="Nm">ftp</code> will attempt to use a
       +      <code class="Dv">PORT</code> command when establishing a connection for
       +      each data transfer. The use of <code class="Dv">PORT</code> commands can
       +      prevent delays when performing multiple file transfers. If the
       +      <code class="Dv">PORT</code> command fails, <code class="Nm">ftp</code>
       +      will use the default data port. When the use of
       +      <code class="Dv">PORT</code> commands is disabled, no attempt will be made
       +      to use <code class="Dv">PORT</code> commands for each data transfer. This
       +      is useful for certain FTP implementations which do ignore
       +      <code class="Dv">PORT</code> commands but, incorrectly, indicate they've
       +      been accepted.</dd>
       +  <dt id="site"><a class="permalink" href="#site"><code class="Ic">site</code></a>
       +    <var class="Ar">arg ...</var></dt>
       +  <dd>The arguments specified are sent, verbatim, to the remote FTP server as a
       +      <code class="Dv">SITE</code> command.</dd>
       +  <dt id="size"><a class="permalink" href="#size"><code class="Ic">size</code></a>
       +    <var class="Ar">file</var></dt>
       +  <dd>Return size of <var class="Ar">file</var> on remote machine.</dd>
       +  <dt id="status"><a class="permalink" href="#status"><code class="Ic">status</code></a></dt>
       +  <dd>Show the current status of <code class="Nm">ftp</code>.</dd>
       +  <dt id="sunique"><a class="permalink" href="#sunique"><code class="Ic">sunique</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle storing of files on remote machine under unique file names. The
       +      remote FTP server must support the FTP protocol
       +      <code class="Dv">STOU</code> command for successful completion. The remote
       +      server will report the unique name. Default value is off.</dd>
       +  <dt id="system"><a class="permalink" href="#system"><code class="Ic">system</code></a></dt>
       +  <dd>Show the type of operating system running on the remote machine.</dd>
       +  <dt id="trace"><a class="permalink" href="#trace"><code class="Ic">trace</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle packet tracing.</dd>
       +  <dt id="type"><a class="permalink" href="#type"><code class="Ic">type</code></a>
       +    [<var class="Ar">type-name</var>]</dt>
       +  <dd>Set the file transfer <code class="Ic">type</code> to
       +      <var class="Ar">type-name</var>. If no type is specified, the current type
       +      is printed. The default type is &#x201C;binary&#x201D;.</dd>
       +  <dt id="umask"><a class="permalink" href="#umask"><code class="Ic">umask</code></a>
       +    [<var class="Ar">newmask</var>]</dt>
       +  <dd>Set the default umask on the remote server to
       +      <var class="Ar">newmask</var>. If <var class="Ar">newmask</var> is
       +      omitted, the current umask is printed.</dd>
       +  <dt id="user"><a class="permalink" href="#user"><code class="Ic">user</code></a>
       +    <var class="Ar">username</var> [<var class="Ar">password</var>
       +    [<var class="Ar">account</var>]]</dt>
       +  <dd>Identify yourself to the remote FTP server. If the
       +      <var class="Ar">password</var> is not specified and the server requires
       +      it, <code class="Nm">ftp</code> will prompt the user for it (after
       +      disabling local echo). If an <var class="Ar">account</var> field is not
       +      specified, and the FTP server requires it, the user will be prompted for
       +      it. If an <var class="Ar">account</var> field is specified, an account
       +      command will be relayed to the remote server after the login sequence is
       +      completed if the remote server did not require it for logging in. Unless
       +      <code class="Nm">ftp</code> is invoked with &#x201C;auto-login&#x201D;
       +      disabled, this process is done automatically on initial connection to the
       +      FTP server.</dd>
       +  <dt id="verbose"><a class="permalink" href="#verbose"><code class="Ic">verbose</code></a>
       +    [<code class="Ic">on</code> | <code class="Ic">off</code>]</dt>
       +  <dd>Toggle verbose mode. In verbose mode, all responses from the FTP server
       +      are displayed to the user. In addition, if verbose is on, when a file
       +      transfer completes, statistics regarding the efficiency of the transfer
       +      are reported. By default, verbose is on.</dd>
       +</dl>
       +<p class="Pp">Command arguments which have embedded spaces may be quoted with
       +    quote (&#x2018;<code class="Li">&quot;</code>&#x2019;) marks.</p>
       +<p class="Pp">Commands which toggle settings can take an explicit
       +    <code class="Ic">on</code> or <code class="Ic">off</code> argument to force
       +    the setting appropriately.</p>
       +<p class="Pp">If <code class="Nm">ftp</code> receives a
       +    <code class="Dv">SIGINFO</code> (see the &#x201C;status&#x201D; argument of
       +    <a class="Xr" href="/stty.1" aria-label="stty, section 1">stty(1)</a>)
       +    signal whilst a transfer is in progress, the current transfer rate
       +    statistics will be written to the standard error output, in the same format
       +    as the standard completion message.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="AUTO-FETCHING_FILES"><a class="permalink" href="#AUTO-FETCHING_FILES">AUTO-FETCHING
       +  FILES</a></h2>
       +<p class="Pp">In addition to standard commands, this version of
       +    <code class="Nm">ftp</code> supports an auto-fetch feature. To enable
       +    auto-fetch, simply pass the list of hostnames/files on the command line.</p>
       +<p class="Pp">The following formats are valid syntax for an auto-fetch
       +  element:</p>
       +<dl class="Bl-tag">
       +  <dt><var class="Ar">host</var>:/<var class="Ar">file</var>[/]</dt>
       +  <dd>&#x201C;Classic&#x201D; <code class="Nm">ftp</code> format.</dd>
       +  <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>
       +  <dd> An FTP URL, retrieved using the FTP protocol if
       +      <code class="Ev">ftp_proxy</code> isn't defined. Otherwise, transfer using
       +      HTTP via the proxy defined in <code class="Ev">ftp_proxy</code>. If a
       +      <var class="Ar">user</var> and <var class="Ar">password</var> are given
       +      and <code class="Ev">ftp_proxy</code> isn't defined, log in as
       +      <var class="Ar">user</var> with a password of
       +      <var class="Ar">password</var>.</dd>
       +  <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>
       +  <dd> An HTTP URL, retrieved using the HTTP protocol. If
       +      <code class="Ev">http_proxy</code> is defined, it is used as a URL to an
       +      HTTP proxy server. If a <var class="Ar">user</var> and
       +      <var class="Ar">password</var> are given and
       +      <code class="Ev">http_proxy</code> isn't defined, log in as
       +      <var class="Ar">user</var> with a password of
       +      <var class="Ar">password</var> using Basic authentication.</dd>
       +  <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>
       +  <dd> An HTTPS URL, retrieved using the HTTPS protocol. If
       +      <code class="Ev">http_proxy</code> is defined, this HTTPS proxy server
       +      will be used to fetch the file using the CONNECT method. If a
       +      <var class="Ar">user</var> and <var class="Ar">password</var> are given
       +      and <code class="Ev">http_proxy</code> isn't defined, log in as
       +      <var class="Ar">user</var> with a password of
       +      <var class="Ar">password</var> using Basic authentication.</dd>
       +  <dt>file:<var class="Ar">file</var></dt>
       +  <dd><var class="Ar">file</var> is retrieved from a mounted file system.</dd>
       +</dl>
       +<p class="Pp">If a classic format or an FTP URL format has a trailing
       +    &#x2018;/&#x2019;, then <code class="Nm">ftp</code> will connect to the site
       +    and <code class="Ic">cd</code> to the directory given as the path, and leave
       +    the user in interactive mode ready for further input.</p>
       +<p class="Pp">If <var class="Ar">file</var> contains a glob character and
       +    globbing is enabled (see <code class="Ic">glob</code>), then the equivalent
       +    of <code class="Ic">mget</code> <var class="Ar">file</var> is performed.</p>
       +<p class="Pp">If no <code class="Fl">-o</code> option is specified, and the
       +    directory component of <var class="Ar">file</var> contains no globbing
       +    characters, then it is stored in the current directory as the
       +    <a class="Xr" href="/basename.1" aria-label="basename, section
       +    1">basename(1)</a> of <var class="Ar">file</var>. If
       +    <code class="Fl">-o</code> <var class="Ar">output</var> is specified, then
       +    <var class="Ar">file</var> is stored as <var class="Ar">output</var>.
       +    Otherwise, the remote name is used as the local name.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="ABORTING_A_FILE_TRANSFER"><a class="permalink" href="#ABORTING_A_FILE_TRANSFER">ABORTING
       +  A FILE TRANSFER</a></h2>
       +<p class="Pp">To abort a file transfer, use the terminal interrupt key (usually
       +    Ctrl-C). Sending transfers will be immediately halted. Receiving transfers
       +    will be halted by sending an FTP protocol <code class="Dv">ABOR</code>
       +    command to the remote server, and discarding any further data received. The
       +    speed at which this is accomplished depends upon the remote server's support
       +    for <code class="Dv">ABOR</code> processing. If the remote server does not
       +    support the <code class="Dv">ABOR</code> command, an
       +    &#x2018;<code class="Li">ftp&gt;</code>&#x2019; prompt will not appear until
       +    the remote server has completed sending the requested file.</p>
       +<p class="Pp">The terminal interrupt key sequence will be ignored when
       +    <code class="Nm">ftp</code> has completed any local processing and is
       +    awaiting a reply from the remote server. A long delay in this mode may
       +    result from the ABOR processing described above, or from unexpected behavior
       +    by the remote server, including violations of the FTP protocol. If the delay
       +    results from unexpected remote server behavior, the local
       +    <code class="Nm">ftp</code> program must be killed by hand.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="FILE_NAMING_CONVENTIONS"><a class="permalink" href="#FILE_NAMING_CONVENTIONS">FILE
       +  NAMING CONVENTIONS</a></h2>
       +<p class="Pp">Files specified as arguments to <code class="Nm">ftp</code>
       +    commands are processed according to the following rules.</p>
       +<ol class="Bl-enum">
       +  <li>If &#x2018;-&#x2019; is specified as a local file name, the standard input
       +      (for reading) or standard output (for writing) is used.</li>
       +  <li>If the first character of a local file name is &#x2018;|&#x2019;, the
       +      remainder of the argument is interpreted as a shell command.
       +      <code class="Nm">ftp</code> then forks a shell, using
       +      <a class="Xr" href="/popen.3" aria-label="popen, section 3">popen(3)</a>
       +      with the argument supplied, and reads (writes) from the standard output
       +      (standard input). If the shell command includes spaces, the argument must
       +      be quoted; e.g., &quot;ls -lt&quot;. A particularly useful example of this
       +      mechanism is: &quot;ls . |more&quot;.</li>
       +  <li>Failing the above checks, if &#x201C;globbing&#x201D; is enabled, local
       +      file names are expanded according to the rules used in the
       +      <a class="Xr" href="/csh.1" aria-label="csh, section 1">csh(1)</a>
       +      <code class="Ic">glob</code> command. If the <code class="Nm">ftp</code>
       +      command expects a single local file (e.g., <code class="Ic">put</code>),
       +      only the first filename generated by the &#x201C;globbing&#x201D;
       +      operation is used.</li>
       +  <li>For <code class="Ic">mget</code> commands and <code class="Ic">get</code>
       +      commands with unspecified local file names, the local filename is the
       +      remote filename, which may be altered by a <code class="Ic">case</code>,
       +      <code class="Ic">ntrans</code>, or <code class="Ic">nmap</code> setting.
       +      The resulting filename may then be altered if
       +      <code class="Ic">runique</code> is on.</li>
       +  <li>For <code class="Ic">mput</code> commands and <code class="Ic">put</code>
       +      commands with unspecified remote file names, the remote filename is the
       +      local filename, which may be altered by a <code class="Ic">ntrans</code>
       +      or <code class="Ic">nmap</code> setting. The resulting filename may then
       +      be altered by the remote server if <code class="Ic">sunique</code> is
       +    on.</li>
       +</ol>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="FILE_TRANSFER_PARAMETERS"><a class="permalink" href="#FILE_TRANSFER_PARAMETERS">FILE
       +  TRANSFER PARAMETERS</a></h2>
       +<p class="Pp">The FTP specification specifies many parameters which may affect a
       +    file transfer. The <code class="Ic">type</code> may be one of
       +    &#x201C;ascii&#x201D;, &#x201C;binary&#x201D;, or &#x201C;image&#x201D;.
       +    <code class="Nm">ftp</code> supports the ASCII and image types of file
       +    transfer.</p>
       +<p class="Pp"><code class="Nm">ftp</code> supports only the default values for
       +    the remaining file transfer parameters: <code class="Ic">mode</code>,
       +    <code class="Ic">form</code>, and <code class="Ic">struct</code>.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="THE_.netrc_FILE"><a class="permalink" href="#THE_.netrc_FILE">THE
       +  .netrc FILE</a></h2>
       +<p class="Pp">The <span class="Pa">.netrc</span> file contains login and
       +    initialization information used by the auto-login process. It resides in the
       +    user's home directory. The following tokens are recognized; they may be
       +    separated by spaces, tabs, or new-lines:</p>
       +<dl class="Bl-tag">
       +  <dt id="machine"><a class="permalink" href="#machine"><code class="Ic">machine</code></a>
       +    <var class="Ar">name</var></dt>
       +  <dd>Identify a remote machine <var class="Ar">name</var>. The auto-login
       +      process searches the <span class="Pa">.netrc</span> file for a
       +      <code class="Ic">machine</code> token that matches the remote machine
       +      specified on the <code class="Nm">ftp</code> command line or as an
       +      <code class="Ic">open</code> command argument. Once a match is made, the
       +      subsequent <span class="Pa">.netrc</span> tokens are processed, stopping
       +      when the end of file is reached or another <code class="Ic">machine</code>
       +      or a <code class="Ic">default</code> token is encountered.</dd>
       +  <dt id="default"><a class="permalink" href="#default"><code class="Ic">default</code></a></dt>
       +  <dd>This is the same as <code class="Ic">machine</code>
       +      <var class="Ar">name</var> except that <code class="Ic">default</code>
       +      matches any name. There can be only one <code class="Ic">default</code>
       +      token, and it must be after all <code class="Ic">machine</code> tokens.
       +      This is normally used as:
       +    <p class="Pp"></p>
       +    <div class="Bd Bd-indent"><code class="Li">default login anonymous password
       +      user@site</code></div>
       +    <p class="Pp">thereby giving the user <var class="Ar">automatic</var>
       +        anonymous FTP login to machines not specified in
       +        <span class="Pa">.netrc</span>. This can be overridden by using the
       +        <code class="Fl">-n</code> flag to disable auto-login.</p>
       +  </dd>
       +  <dt id="login"><a class="permalink" href="#login"><code class="Ic">login</code></a>
       +    <var class="Ar">name</var></dt>
       +  <dd>Identify a user on the remote machine. If this token is present, the
       +      auto-login process will initiate a login using the specified
       +      <var class="Ar">name</var>.</dd>
       +  <dt id="password"><a class="permalink" href="#password"><code class="Ic">password</code></a>
       +    <var class="Ar">string</var></dt>
       +  <dd>Supply a password. If this token is present, the auto-login process will
       +      supply the specified string if the remote server requires a password as
       +      part of the login process. Note that if this token is present in the
       +      <span class="Pa">.netrc</span> file for any user other than
       +      <var class="Ar">anonymous</var>, <code class="Nm">ftp</code> will abort
       +      the auto-login process if the <span class="Pa">.netrc</span> is readable
       +      by anyone besides the user.</dd>
       +  <dt id="account~2"><a class="permalink" href="#account~2"><code class="Ic">account</code></a>
       +    <var class="Ar">string</var></dt>
       +  <dd>Supply an additional account password. If this token is present, the
       +      auto-login process will supply the specified string if the remote server
       +      requires an additional account password, or the auto-login process will
       +      initiate an <code class="Dv">ACCT</code> command if it does not.</dd>
       +  <dt id="macdef~2"><a class="permalink" href="#macdef~2"><code class="Ic">macdef</code></a>
       +    <var class="Ar">name</var></dt>
       +  <dd>Define a macro. This token functions like the <code class="Nm">ftp</code>
       +      <code class="Ic">macdef</code> command functions. A macro is defined with
       +      the specified name; its contents begin with the next
       +      <span class="Pa">.netrc</span> line and continue until a null line
       +      (consecutive new-line characters) is encountered. Like the other tokens in
       +      the <span class="Pa">.netrc</span> file, a <code class="Ic">macdef</code>
       +      is applicable only to the <code class="Ic">machine</code> definition
       +      preceding it. A <code class="Ic">macdef</code> entry cannot be utilized by
       +      multiple <code class="Ic">machine</code> definitions; rather, it must be
       +      defined following each <code class="Ic">machine</code> it is intended to
       +      be used with. If a macro named <code class="Ic">init</code> is defined, it
       +      is automatically executed as the last step in the auto-login process.</dd>
       +</dl>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="COMMAND_LINE_EDITING"><a class="permalink" href="#COMMAND_LINE_EDITING">COMMAND
       +  LINE EDITING</a></h2>
       +<p class="Pp"><code class="Nm">ftp</code> supports interactive command line
       +    editing, via the <a class="Xr" href="/editline.3" aria-label="editline,
       +    section 3">editline(3)</a> library. It is enabled with the
       +    <code class="Ic">edit</code> command, and is enabled by default if input is
       +    from a tty. Previous lines can be recalled and edited with the arrow keys,
       +    and other GNU Emacs-style editing keys may be used as well.</p>
       +<p class="Pp">The <a class="Xr" href="/editline.3" aria-label="editline, section
       +    3">editline(3)</a> library is configured with a
       +    <span class="Pa">.editrc</span> file - refer to
       +    <a class="Xr" href="/editrc.5" aria-label="editrc, section 5">editrc(5)</a>
       +    for more information.</p>
       +<p class="Pp">An extra key binding is available to <code class="Nm">ftp</code>
       +    to provide context sensitive command and filename completion (including
       +    remote file completion). To use this, bind a key to the
       +    <a class="Xr" href="/editline.3" aria-label="editline, section
       +    3">editline(3)</a> command <code class="Ic">ftp-complete</code>. By default,
       +    this is bound to the TAB key.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h2>
       +<p class="Pp"><code class="Nm">ftp</code> utilizes the following environment
       +    variables:</p>
       +<dl class="Bl-tag">
       +  <dt id="FTPMODE"><a class="permalink" href="#FTPMODE"><code class="Ev">FTPMODE</code></a></dt>
       +  <dd>Overrides the default operation mode. Recognized values are:
       +    <p class="Pp"></p>
       +    <div class="Bd-indent">
       +    <dl class="Bl-tag Bl-compact">
       +      <dt>passive</dt>
       +      <dd>passive mode FTP only</dd>
       +      <dt>active</dt>
       +      <dd>active mode FTP only</dd>
       +      <dt>auto</dt>
       +      <dd>automatic determination of passive or active (this is the
       +        default)</dd>
       +      <dt>gate</dt>
       +      <dd>gate-ftp mode</dd>
       +    </dl>
       +    </div>
       +  </dd>
       +  <dt id="FTPSERVER"><a class="permalink" href="#FTPSERVER"><code class="Ev">FTPSERVER</code></a></dt>
       +  <dd>Host to use as gate-ftp server when <code class="Ic">gate</code> is
       +      enabled.</dd>
       +  <dt id="FTPSERVERPORT"><a class="permalink" href="#FTPSERVERPORT"><code class="Ev">FTPSERVERPORT</code></a></dt>
       +  <dd>Port to use when connecting to gate-ftp server when
       +      <code class="Ic">gate</code> is enabled. Default is port returned by a
       +      <code class="Fn">getservbyname</code>() lookup of
       +      &#x201C;ftpgate/tcp&#x201D;.</dd>
       +  <dt id="HOME"><a class="permalink" href="#HOME"><code class="Ev">HOME</code></a></dt>
       +  <dd>For default location of a <span class="Pa">.netrc</span> file, if one
       +      exists.</dd>
       +  <dt id="PAGER"><a class="permalink" href="#PAGER"><code class="Ev">PAGER</code></a></dt>
       +  <dd>Used by <code class="Ic">page</code> to display files.</dd>
       +  <dt id="SHELL"><a class="permalink" href="#SHELL"><code class="Ev">SHELL</code></a></dt>
       +  <dd>For default shell.</dd>
       +  <dt id="ftp_proxy"><a class="permalink" href="#ftp_proxy"><code class="Ev">ftp_proxy</code></a></dt>
       +  <dd>URL of FTP proxy to use when making FTP URL requests (if not defined, use
       +      the standard FTP protocol).</dd>
       +  <dt id="http_proxy"><a class="permalink" href="#http_proxy"><code class="Ev">http_proxy</code></a></dt>
       +  <dd>URL of HTTP proxy to use when making HTTP or HTTPS URL requests.</dd>
       +  <dt id="http_cookies"><a class="permalink" href="#http_cookies"><code class="Ev">http_cookies</code></a></dt>
       +  <dd>Path of a Netscape-like cookiejar file to use when making HTTP or HTTPS
       +      URL requests.</dd>
       +</dl>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="PORT_ALLOCATION"><a class="permalink" href="#PORT_ALLOCATION">PORT
       +  ALLOCATION</a></h2>
       +<p class="Pp">For active mode data connections, <code class="Nm">ftp</code> will
       +    listen to a random high TCP port. The interval of ports used are
       +    configurable using <a class="Xr" href="/sysctl.8" aria-label="sysctl,
       +    section 8">sysctl(8)</a> variables
       +    <var class="Va">net.inet.ip.porthifirst</var> and
       +    <var class="Va">net.inet.ip.porthilast</var>.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
       +  ALSO</a></h2>
       +<p class="Pp"><a class="Xr" href="/basename.1" aria-label="basename, section
       +    1">basename(1)</a>, <a class="Xr" href="/csh.1" aria-label="csh, section
       +    1">csh(1)</a>, <a class="Xr" href="/more.1" aria-label="more, section
       +    1">more(1)</a>, <a class="Xr" href="/stty.1" aria-label="stty, section
       +    1">stty(1)</a>, <a class="Xr" href="/tar.1" aria-label="tar, section
       +    1">tar(1)</a>, <a class="Xr" href="/tftp.1" aria-label="tftp, section
       +    1">tftp(1)</a>, <a class="Xr" href="/editline.3" aria-label="editline,
       +    section 3">editline(3)</a>,
       +    <a class="Xr" href="/getservbyname.3" aria-label="getservbyname, section
       +    3">getservbyname(3)</a>, <a class="Xr" href="/popen.3" aria-label="popen,
       +    section 3">popen(3)</a>, <a class="Xr" href="/editrc.5" aria-label="editrc,
       +    section 5">editrc(5)</a>,
       +    <a class="Xr" href="/services.5" aria-label="services, section
       +    5">services(5)</a>, <a class="Xr" href="/ftp-proxy.8" aria-label="ftp-proxy,
       +    section 8">ftp-proxy(8)</a>, <a class="Xr" href="/ftpd.8" aria-label="ftpd,
       +    section 8">ftpd(8)</a></p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="STANDARDS"><a class="permalink" href="#STANDARDS">STANDARDS</a></h2>
       +<p class="Pp"><cite class="Rs"><span class="RsA">J. Postel</span> and
       +    <span class="RsA">J. Reynolds</span>, <span class="RsT">FILE TRANSFER
       +    PROTOCOL (FTP)</span>, <span class="RsR">RFC 959</span>,
       +    <span class="RsD">October 1985</span>.</cite></p>
       +<p class="Pp"><cite class="Rs"><span class="RsA">P. Hethmon</span>,
       +    <span class="RsT">Extensions to FTP</span>, <span class="RsR">RFC
       +    3659</span>, <span class="RsD">March 2007</span>.</cite></p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h2>
       +<p class="Pp">The <code class="Nm">ftp</code> command appeared in
       +    <span class="Ux">4.2BSD</span>.</p>
       +</section>
       +<section class="Sh">
       +<h2 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h2>
       +<p class="Pp">Correct execution of many commands depends upon proper behavior by
       +    the remote server.</p>
       +<p class="Pp">In the recursive mode of <code class="Ic">mget</code>, files and
       +    directories starting with whitespace are ignored because the list cannot be
       +    parsed any other way.</p>
       +</section>
       +</main>
       +<div class="foot" role="doc-pagefooter" aria-label="Manual footer
       +  line"><span class="foot-left"></span><span class="foot-date">September 15,
       +  2022</span> <span class="foot-os">OpenBSD-current</span></div>
       +</body>
       +</html>