webdump_tests

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

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:
Arealworld/openbsd_man_ftp.html | 1367+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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> &#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>