commit bb2a4ecc1a94a14c540671afe402e0dab0b5ec54
parent 3eb7893c950ae10cc4e8dbb092603e73470888ba
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:
1 file changed, 1367 insertions(+), 0 deletions(-)
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> —
+ <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 “Range” 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
+ “auto-login” 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
+ ‘-’ 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 “If-Modified-Since” 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 “OpenBSD
+ ftp”.</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
+ “Last-Modified” 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 “ftp>” 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
+ ‘<code class="Li">--></code>’.</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
+ “file”.</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 “mls remote-files -”. 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 (‘<code class="Li">#</code>’) 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 ‘<code class="Li">ls
+ -l</code>’. 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 ‘-’,
+ 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
+ ‘<code class="Li">$</code>’ and
+ ‘<code class="Li">\</code>’ as special characters. A
+ ‘<code class="Li">$</code>’ followed by a number (or
+ numbers) is replaced by the corresponding argument on the macro
+ invocation command line. A ‘<code class="Li">$</code>’
+ followed by an ‘i’ tells the macro processor that the
+ executing macro is to be looped. On the first pass
+ ‘<code class="Li">$i</code>’ 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
+ ‘<code class="Li">\</code>’ followed by any character is
+ replaced by that character. Use the
+ ‘<code class="Li">\</code>’ to prevent special treatment
+ of the ‘<code class="Li">$</code>’.</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
+ ‘<code class="Li">lcd directory</code>’; new local
+ directories can be created with ‘<code class="Li">! mkdir
+ directory</code>’.
+ <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
+ “stream” 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 ‘-’, 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 ‘<code class="Li">$1</code>’,
+ ‘<code class="Li">$2</code>’, ...,
+ ‘<code class="Li">$9</code>’ in
+ <var class="Ar">inpattern</var>. Use
+ ‘<code class="Li">\</code>’ to prevent this special
+ treatment of the ‘<code class="Li">$</code>’ 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 "mydata.data", $1 would have the value
+ "mydata", and $2 would have the value "data". The
+ <var class="Ar">outpattern</var> determines the resulting mapped
+ filename. The sequences ‘<code class="Li">$1</code>’,
+ ‘<code class="Li">$2</code>’, ...,
+ ‘<code class="Li">$9</code>’ are replaced by any value
+ resulting from the <var class="Ar">inpattern</var> template. The
+ sequence ‘<code class="Li">$0</code>’ is replaced by the
+ original filename. Additionally, the sequence
+ ‘[<var class="Ar">seq1</var>, <var class="Ar">seq2</var>]’
+ 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 "$1 $2"</pre>
+ </div>
+ <p class="Pp">Use the ‘<code class="Li">\</code>’ character to
+ prevent special treatment of the
+ ‘<code class="Li">$</code>’,
+ ‘<code class="Li">[</code>’,
+ ‘<code class="Li">]</code>’, and
+ ‘<code class="Li">,</code>’ 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
+ ‘-’ or a command that starts with ‘|’. 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 “yes” to the current file and automatically
+ answer “yes” 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 “yes” to the current file and turn off prompt
+ mode (as if “prompt off” had been given).</dd>
+ <dt id="q"><a class="permalink" href="#q"><code class="Ic">q</code></a></dt>
+ <dd>Answer “no” to the current file and automatically answer
+ “no” 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
+ “.1” is appended to the name. If the resulting name matches
+ another existing file, a “.2” is appended to the original
+ name. If this process continues up to “.99”, 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 “binary”.</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 “auto-login”
+ 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 (‘<code class="Li">"</code>’) 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 “status” 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>“Classic” <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
+ ‘/’, 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
+ ‘<code class="Li">ftp></code>’ 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 ‘-’ 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 ‘|’, 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., "ls -lt". A particularly useful example of this
+ mechanism is: "ls . |more".</li>
+ <li>Failing the above checks, if “globbing” 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 “globbing”
+ 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
+ “ascii”, “binary”, or “image”.
+ <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
+ “ftpgate/tcp”.</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>