ftp 命令

用途

在本地主机和远程主机之间传送文件。

语法

ftp [ -d ] [ -DDataConnTimeOut ][ -g ] [ -i ] [ -n ] [ -v ] [ -f ] [ -K ] [ -k realm ] [ -q ] [ -C ] [ -s ] [ -M ] [ HostName [ 端口 ] ] [ -H ]

描述

ftp 命令使用“文件传输协议”(FTP)在本地和远程主机或远程主机之间传送文件。 不建议远程执行 ftp 命令。

FTP 协议允许在使用不同文件系统的主机之间进行数据传送。 尽管协议在传送数据中提供了很高的灵活度,它仍然不会尝试保留特定于某个文件系统的文件属性(如文件保护模式或修改时间)。 而且,FTP 协议为文件系统的整体结构做了少许假设,且不提供或不允许诸如循环地复制子目录这样的函数。

注: 如果要在系统之间传输文件并且需要保留文件属性或递归复制子目录,请使用 rcp 命令。

发出子命令

ftp>提示,您可以输入子命令来执行诸如列示远程目录,更改当前本地和远程目录,在单个请求中传输多个文件,创建和除去目录以及转义到本地 shell 以执行 shell 命令等任务。 请参阅 子命令 部分以获取每个子命令的描述。

如果执行 ftp 命令并且没有为远程主机指定 HostName 参数,那么 ftp 命令将立即显示ftp>提示并等待 ftp 子命令。 要连接到远程主机,请执行 open 子命令 ftp 命令连接到远程主机时, ftp 命令在显示ftp>再次提示。 如果远程主机中未定义登录名的密码,ftp 命令将不成功。

ftp 命令解释器,用于处理在ftp>提示,提供大多数文件传输程序不可用的工具,例如:

  • ftp 子命令处理文件名参数
  • 将一组子命令集中成一个单一的子命令宏
  • $HOME/.netrc 文件中装入宏

这些性能会帮助您简化重复的任务,并允许您在 unattended 方式使用 ftp 命令。

命令解释器将按照以下规则处理文件名参数:

  • 如果为参数指定了-(连字符) ,那么标准输入 (stdin) 用于读操作,标准输出 (stdout) 用于写操作。
  • 如果上述检查不适用,并且已启用文件名扩展 (请参阅 -g 标志或 glob 子命令) , 解释器根据 C shell 的规则扩展文件名。 启用了文件名匹配替换以及在期待单一文件名的子命令中使用了模式匹配字符时,结果可能与期待的不一样。

    例如, appendput 子命令执行文件名扩展,然后仅使用生成的第一个文件名。 其他 ftp 子命令,例如 cddeletegetmkdirrename, 和 rmdir,不执行文件名扩展并按字面意思使用模式匹配字符。

  • 对于 getputmgetmput 子命令, 解释器能够在不同的本地和远程文件名语法样式之间进行翻译和映射 (请参阅 casentrans, 和 nmap 子命令) 以及修改本地文件名 (如果它不是唯一的) 的能力 (请参阅 runique 子命令)。 此外, ftp 命令可以向远程 ftpd 服务器发送指令以修改远程文件名 (如果它不是唯一的) (请参阅 sunique 子命令)。
  • 使用双引号 ("") 以指定包含空白字符的参数。
    注: ftp 命令解释器不支持管道。 也无需支持所有多字节字符文件名。

要在以交互方式运行时结束 ftp 会话, 在以下位置使用 quitbye 子命令或 "文件结束" (Ctrl-D) 键序列:ftp>提示。 要在文件传输未完成之前结束它,请按中断按键顺序。 其缺省“中断键”序列是 Ctrl-C。 stty 命令可用于重新定义此键序列。

ftp 命令在正常情况下会立即暂停正在发送(从本地主机到远端主机)的传输。 ftp 命令通过将 FTP ABOR 指令发送到远程 FTP 服务器,来暂停正在接收的传输(从远程主机到本地主机),并废弃所有传入的文件传输包(直到远程服务器停止发送它们为止)。 如果远程服务器不支持 ABOR 指令,那么 ftp 命令不显示ftp>直到远程服务器发送了所有请求的文件为止。 另外,如果远程服务器执行未期望的操作时,可能需要结束本地 ftp 进程。

安全性和自动登录

如果“标准”是当前认证方法:

ftp 命令也会通过将密码发送到远程主机来处理安全性,并许可自动登录、文件传输和注销操作。

如果您执行 ftp 命令并指定远程主机的主机名 (HostName), ftp 命令会尝试建立一个对于指定主机的连接。 如果 ftp 命令连接成功,ftp 命令会在当前目录或主目录中搜索本地的 $HOME/.netrc 文件。 如果文件存在,ftp 命令会在文件中搜索启动登录过程的入口,在命令宏定义中搜索远程主机。 如果 $HOME/.netrc 文件或自动登录条目不存在,或者如果您的系统已使用 securetcpip 命令进行保护,那么 ftp 命令会提示用户输入用户名和密码。 不论命令行中是否指定 HostName 参数,该指令都会显示此提示。

注:队列系统不支持多字节主机名。

如果 ftp 命令找到指定主机的 $HOME/.netrc 自动登录项,ftp 会试图使用该登录项中的信息登录远程主机。 ftp 命令也会载入任何在登录项中定义的命令宏。 在某些情况下 (例如,当所需密码未在自动登录条目中列出时) , ftp 命令在显示ftp>提示。

一旦 ftp 命令完成自动登录,如果宏是在自动登录项中定义的,ftp 命令就会执行 init 宏。 如果 init 宏不存在或不包含 quitbye 子命令, 然后, ftp 命令显示ftp>prompt 并等待子命令。

注: 在提示符处或 $HOME/.netrc 文件中指定的远程用户名必须存在并且在远程主机上定义了密码。 否则,ftp 命令失败。

如果 Kerberos 5 是当前认证方法:

ftp 命令会按在 IETF 草稿文挡 "draft-ietf-cat-ftpsec-09.txt" 定义的那样将此拓展用于 ftp 规范。 FTP 安全性扩展将使用“ Generic Security Service API (GSSAPI)”安全机制来实现。 GSSAPI 提供对于基础的安全性和通信机制来说是独立的服务。 GSSAPI 是在 rfc 1508 和 1509 中定义的。

ftp 命令将使用 AUTH 和 ADAT 命令验证 ftpd 守护程序。 如果两者都支持 Kerberos 认证,那么它们会使用本地用户 DCE 凭证验证远程系统上的用户。 如果这样失败了,且两个系统中都配置了“标准的”认证,那么会使用上述的过程。

HostName 参数是传送文件的目标主机名。 可选的 Port 参数指定了端口的标识,通过此端口进行传输。 (/etc/services 文件指定了缺省端口。)

注: 如果注册表的值正确设置为当前认证方案,那么 FTP 认证将使用 Active Directory 密码。 如果注册表的值设置为空,那么使用文件的缺省值(本地用户认证)。

传输层安全性支持

ftp 命令支持传输层安全性 (TLS),如 RFC 4217 中所定义。 TLS 是一种加密协议,它在客户机和服务器之间提供了安全通信。

ftp 命令使用 AUTH TLSPROT P 命令,与 ftpd 守护程序进行安全的通信。 如果 AUTH TLSPROT P 命令都支持 TLS 协议,那么会建立安全信道。 仅支持“标准认证”方法。

如果在运行 ftp 命令时指定 -s 标志,那么 ftp 命令将在您的主目录中搜索本地 $HOME/.ftpcnf 文件。 如果找到文件,那么 ftp 命令使用以下配置参数来设置与服务器的 TLS 会话。 如果找不到文件或配置参数丢失,那么 ftp 命令会尝试不使用配置参数来连接服务器。

CRL_PATH
CRL_PATH 参数提供了证书撤销列表文件的路径,该文件必须采用隐私增强邮件 (PEM) 格式。 如果指定,那么将针对证书撤销列表验证服务器所提供的数字证书。 如果撤销了证书,那么 TLS 会话将失败。 如果不指定,那么将不会针对证书撤销列表验证该数字证书。
CA_PATH
CA_PATH 参数提供了认证中心文件的路径,该文件必须采用 PEM 格式。 如果指定,那么将针对认证中心验证服务器证书。 如果安全中心未对服务器所提供的数字证书进行签名,那么 TLS 会话将失败。 如果不指定,那么将不会针对证书撤销列表验证服务器所提供的数字证书。
CIPHER_LIST
如果指定了 CIPHER_LIST 参数,那么会在 TLS 会话期间使用该列表。 如果未指定,那么将采用缺省的密钥列表。
DEPTH
如果指定 CA_PATH 配置参数,那么将使用 DEPTH 值来验证数字证书层次结构中 ftpd 服务器所提供的证书。 如果不提供,那么将使用缺省值 9。
CERTIFICATE
CERTIFICATE 参数提供 PEM 格式的有效数字证书链文件的路径。 此文件用于 TLS 会话中。
CERTIFICATE_PRIVATE_KEY
CERTIFICATE_PRIVATE_KEY 参数包含了采用 PEM 格式的证书专用密钥的路径,在 TLS 会话期间将使用该专用密钥。 要支持 TLS ,必须从 AIX® Web 下载包程序 Web 站点安装最新版本的 OpenSSL 工具。

标志

描述
-C 允许用户指定必须在网络缓冲区高速缓存 (NBC) 中高速缓存使用 send_file 命令发送的传出文件。 只有在指定了 -q 标志的情况下才能使用此标志。 仅当文件在无保护的情况下以二进制方式发送时此标志才适用。
-d 将有关 ftp 命令操作的调试信息发送到 syslogd 守护程序。 如果您指定 -d 标志,您必须编辑 /etc/syslog.conf 文件并添加以下中的一项:
user.info FileName

user.debug FileName
注: syslogd 守护程序调试级别包括信息级别消息。

如果不编辑 /etc/syslog.conf 文件,那么没有消息产生。 更改 /etc/syslog.conf 文件后,运行 refresh -s syslogdkill -1 SyslogdPID 命令来通知 syslogd 守护进程其配置文件的更改。 有关调试级别的更多信息,请参阅 /etc/syslog.conf 文件。 另请参阅 debug 子命令

-D DataConnTimeOut

指定 ftp 命令保持数据连接的最大秒数。 缺省值为 300 秒,取值范围可以为 300 秒到 3600 秒。

-f 转发凭证。 如果 Kerberos 5 不是当前的认证方法,该标记将被忽略。
-g 禁用文件名中的元字符拓展。 解释元字符可参考为扩展(有时叫做文件名匹配替换)文件名。 请参阅 glob 子命令。
-h 如果对用户启用了 FILE_Unlink 事件,那么对该事件开启审计日志记录。
-i 传输多个文件期间关闭交互式提示。 请参阅 提示符mgetmput, 和 mdelete 子命令,用于描述在多个文件传输期间的提示。
-K 在控制和数据连接上禁用 sys/socket.h 文件中定义的 SO_KEEPALIVE 选项。
-k 如果与本地系统域不同,允许用户指定远程站的域。 在这些用途上,域和 DCE 单元是同义的。 如果 Kerberos 5 不是当前的认证方法,该标记将被忽略。
-M 防止在本地主机和远程主机之间传输文件之后 ftp 命令遭阻止。
-n 防止在起始连接中的自动登录。 否则, ftp 命令会搜索 $HOME/.netrc 登录项,该登录项描述了远程主机的登录和初始化过程。 请参阅 user 子命令。
-q 允许用户指定必须使用 send_file 子例程在网络上发送文件。 仅当文件在无保护的情况下以二进制方式发送时此标志才适用。
-v 显示远程服务器的全部响应,并提供数据传输的统计信息。 当 ftp 命令的输出是到终端(如控制台或显示)时,此显示方式是缺省方式。

如果 stdin 不是终端,那么 ftp 命令将禁用详细方式,除非用户使用 - 标志调用了 ftp 命令或发出了 详细 子命令。

-s 通过将 AUTH TLS 命令和 PROT P 命令发送至 ftpd 守护程序,启动与服务器的 TLS 会话。 如果建立了 TLS 会话,并且您已使用“标准认证”方法进行认证,那么会对数据和命令的传输进行加密。

子命令

可以在以下位置输入以下 ftp 子命令:ftp>提示。 使用双引号 (" ") 指定包含空格字符的参数。

描述
![命令 [Parameters]] 在本地主机上调用交互的 shell。 可通过 shell 命令提供带有一个或多个可选参数的可选命令。
$ [参数] 执行先前使用 macdef 子命令定义的指定宏。 参数不被扩展。
?[子命令] 显示描述子命令的帮助消息。 如果您不指定 Subcommand 参数,ftp 命令将显示已知子命令的清单。
帐户 [密码] 发送远程主机在授权对其资源进行访问之前可能需要的补充密码。 如果密钥不是命令提供的,将提示用户输入密码。 密码不在屏幕上显示。
附加 LocalFile [ RemoteFile ] 将本地文件添加到远程主机文件中。 如果未指定远程文件名,那么将使用本地文件名,并由使用 ntrans 子命令或 nmap 子命令进行的任何设置进行更改。 append 子命令使用 formmode的当前值。 structtype 子命令,同时附加文件。
ASCII type ascii 子命令的同义词。
响铃 完成传输每个文件之后都响铃一次。
二元 type binary 子命令的同义词。
BLOCK mode block 子命令的同义词。
bye(再见) 结束文件传输会话并退出 ftp 命令。 与 quit 子命令相同。
回车控制 form 回车符-control 子命令的同义词。
CASE 为文件名 case 设置一个切换。 当 case 子命令开启的时候 ftp 命令将全部远程文件名从大写改成小写(将它们写入本地目录时)。 其缺省值为关闭(这样 ftp 命令就会在本地目录中按大写格式写入大写的远程文件名)。
CD RemoteDirectory 将远程主机中的工作目录改为指定的目录。
骤升 将远程主机中的工作目录改为当前目录的父目录。
CLOSE 结束文件传输会话,但不要退出 ftp 命令。 已定义的宏已被擦除。 与 disconnect 子命令相同。
共生 切换本地拷贝。 copylocal 缺省值为关闭。 ftp 通过向自身执行 ftp 操作确认您未置零文件(如相同的主机名和相同的路径名)。 将 copylocal 打开绕过该检查。
cr 在传输 ASCII 类型文件期间接收记录时,从回车和换行序列中除去回车字符。 (在文件传输期间,ftp 命令使用回车和换行来终止每条 ASCII 类型的记录。)

远程主机(其操作系统与正在运行的操作系统不同)的记录可拥有内嵌于记录中的单一换行。 要从记录定界符中区分这些内嵌的换行,请将 cr 子命令设置为关闭。 cr 子命令会在开启和关闭中间进行切换。

调试 [0 | 1] 在调试记录保持开启和关闭之间进行切换。 指定 debugdebug 1,以打印发送到远程主机的每一个命令,并保存重新启动的控制文件。 重新指定 debugdebug 0,停止调试记录保持。 Ctrl-C 键也会保存重新启动的控制文件。

指定 debug 子命令将有关 ftp 命令操作的调试信息发送到 syslogd 守护程序。 如果指定了 debug 子命令,您必须编辑 /etc/syslog.conf 文件并添加以下中的其中一项:

user.info FileName

user.debug FileName
注: syslogd 守护程序调试级别包括信息级别消息。

如果不编辑 /etc/syslog.conf 文件,那么没有消息产生。 更改 /etc/syslog.conf 文件后,运行 refresh -s syslogdkill -1 SyslogdPID 命令来通知 syslogd 守护进程其配置文件的更改。 有关调试级别的更多信息,请参阅 /etc/syslog.conf 文件。 此外,请参考 ftp -d 标志。

删除 RemoteFile 删除指定的远程文件。
dir [RemoteDirectory] [LocalFile] 将所指定的远程目录的内容清单(RemoteDirectory) 写入指定的本地文件(LocalFile)。 如果 RemoteDirectory 参数未指定,dir 子命令将列示当前远程目录的内容。 如果 LocalFile 参数未指定或是一个 -(连字符),那么 dir 子命令将显示本地终端上的清单。
断开连接 结束文件传输会话,但不退出 ftp 命令。 已定义的宏已被擦除。 与 close 子命令相同。
EBCDIC type ebcdic 子命令的同义词。
表达式命令 在常规的和试验性的协议命令中切换。 其缺省值为关闭。
文件 struct file 子命令的同义词。
form [ carriage-control | non-print | telnet ] 指定文件传输的格式。 form 子命令将修改 type 子命令,以按所指示的格式发送文件传输。 有效参数为 carriage-controlnon-printtelnet
回车控制
将文件传输的格式设置为 carriage-control。
非打印
将文件传输的格式设置为 non-print。
telnet
将文件传输的格式设置为 Telnet。 Telnet 是打开对系统的连接的传输控制协议/网间协议 (TCP/IP)。
得到 RemoteFile [ LocalFile ] 将远程文件复制到本地主机。 如果未指定 LocalFile 参数,那么远程文件名将在本地使用,并由 casentransnmap 子命令所做的任何设置改变。 ftp 命令使用 type form的当前设置。 方式,以及传输文件时的 struct 子命令。
glob 切换 mdelete mget的文件名扩展 (globbing) , 和 mput 子命令。 如果文件名匹配替换禁用,这些子命令的文件名参数将不会拓展。 启用了文件名匹配替换以及在期待单一文件名的子命令中使用了模式匹配字符时,结果可能与期待的不一样。

例如, appendput 子命令执行文件名扩展,然后仅使用生成的第一个文件名。 其他 ftp 子命令,例如 cddeletegetmkdirrename, 和 rmdir,不执行文件名扩展并按字面意思使用模式匹配字符。

mput 子命令的全局操作以与 csh 命令相同的方式在本地完成。 对于 mdeletemget 子命令,将在远程机器上单独展开每个文件名,并且不会合并列表。 根据远程主机和 ftp 服务器的不同,目录名的拓展可与文件名的拓展不一样。

要预览目录名称的扩展,请使用 mls 子命令:

mls RemoteFile 

要传输文件的整个目录子树,请以二进制格式传输子树的 tar 归档。 而不是使用 mgetmput 子命令。

hash 切换散列符号 (#) 打印。 当 hash 子命令是开启的时候 ftp 命令会为每个所传送的数据块(1024 字节)显示一个散列符号。
help [子命令] 显示帮助信息。 请参阅 ? 子命令后面的 !(感叹号)提示。
image type image 子命令的同义词。
lcd [目录] 更改本地主机中的工作目录。 如果您未指定目录,ftp 命令将使用主目录。
本地 M type local M 子命令的同义词。
ls [ RemoteDirectory ][ LocalFile ] 请将远程目录缩写的文件清单写入本地文件。 如果 RemoteDirectory 参数未指定,ftp 命令将列示当前远程目录。 如果 LocalFile 参数未指定或是一个 -(连字符),那么 ftp 命令将显示本地终端上的清单。
macdef 定义子命令宏。 随后直到空行的行(两个连续的换行)将作为宏的文本保存。 能为所有宏定义多达 16 个宏,包含 4096 个字符。 在重新定义或执行 close 子命令之前,宏保持已定义状态。

$(美元符号)和 \(反斜杠) 是 ftp 宏中的特殊字符。 后跟一个或多个数字的 $符号将替换为调用行上的相应宏参数 (请参阅 $ 子命令)。 $ 符号后紧随字母 i 表示将要循环该宏,$i 字符组合将被每一次传递中连续的参数替换。

第一个参数用于第一个传递,第二个参数用于第二个传递,依此类推。 A\符号阻止对下一个字符进行特殊处理。 使用 \ 符号来关闭 $和 \ 的特殊含义。 (反斜杠句点) 符号。

删除 RemoteFiles 扩展在远程主机上 RemoteFiles 参数所指定的文件,并删除远程文件。
mdir [ RemoteDirectories LocalFile ] 扩展在远程主机上 RemoteDirectories 参数所指定的目录,并将这些目录的内容清单写入在 LocalFile 参数中定义的文件。 如果 RemoteDirectories 参数包含模式匹配字符,mdir 子命令将提示输入本地文件(如果没指定)。 如果 RemoteDirectories 参数是用空格隔开的远程目录清单,那么清单中最后一个参数应是一个本地文件名或 -(连字符)。

如果 LocalFile 参数是 -(连字符),mdir 子命令将显示本地终端上的清单。 如果打开了交互式提示 (请参阅 prompt 子命令) ,那么 ftp 命令会提示用户验证最后一个参数是否是本地文件而不是远程目录。

mget RemoteFiles 请扩展在远程主机上 RemoteFiles 参数,并将指示的远程文件复制到本地主机的当前目录中。 有关文件名扩展的更多信息,请参阅 glob 子命令。 远程文件名在本地使用,并由 casentrans所做的任何设置改变。 和 nmap 子命令。 ftp 命令使用 form mode的当前设置。 struct在传输文件时输入 子命令。
mkdir [ RemoteDirectory ] 创建在 RemoteDirectory 参数(远程主机中)中指定的目录。
mls [ RemoteDirectories LocalFile ] 扩展在远程主机上在 RemoteDirectories 参数中指定的目录,并将所指示的远程目录的缩写文件清单写入本地文件。 如果 RemoteDirectories 参数包含模式匹配字符,mls 子命令将提示输入本地文件(如果没指定)。 如果 RemoteDirectories 参数是用空格隔开的远程目录清单,那么清单中最后一个参数应是一个本地文件名或 -(连字符)。

如果 LocalFile 参数是 -(连字符),mls 子命令将显示本地终端上的清单。 如果打开了交互式提示 (请参阅 prompt 子命令) ,那么 ftp 命令会提示用户验证最后一个参数是否是本地文件而不是远程目录。

方式 [ stream | block ] 设置文件传输方式。 如果未提供参数,那么缺省值为 stream
BLOCK
将文件传输方式设置为 block。
stream
将文件传输方式设置为 stream。
描述
模态时间 显示远程机器中所指定文件的最后修改时间。 如果 ftp 命令未连接到执行前的主机,那么 modtime 子命令将带错误消息而终止。 ftp 命令忽略第一个参数以外的参数。 如果 FileName 参数未指定,ftp 命令将提示输入文件名。 如果未给出文件名,ftp 命令会将用法消息发送给标准输出,并终止该子命令。

如果远程主机中有 FileName 参数指定的名称,且该名称指定一个文件,那么 ftp 命令将包含文件最后修改时间的消息发送给标准输出,并终止该子命令。 如果 FileName 指定一个目录,那么 ftp 命令会将错误消息发送给标准输出,并终止该子命令。

注: modtime 子命令在允许时解释元字符。
mput [ LocalFiles ] 扩展在主机的 LocalFiles 参数中指定的文件,并将指示的本地文件复制给远程主机。 有关文件名扩展的更多信息,请参阅 glob 子命令。 本地文件名在远程主机上使用,并由 ntransnmap 子命令进行的任何设置改变。 ftp 命令使用 type form的当前设置。 方式,以及传输文件时的 struct 子命令。
nlist [RemoteDirectory] [LocalFile] 将所指定的远程目录的内容清单(RemoteDirectory) 写入指定的本地文件(LocalFile)。 如果 RemoteDirectory 参数未指定,nlist 子命令将列示当前远程目录的内容。 如果 LocalFile 参数未指定或是一个 -(连字符),那么 nlist 子命令将显示本地终端上的清单。
nmap [ InPattern OutPattern ] 打开或关闭文件名映射机制。 如果未指定任何参数,文件名映射将关闭。 如果指定了参数,那么将为 麦德麦德龙 子命令以及 获取 子命令映射源文件名 (如果未指定目标文件名)。 此子命令在本地和远程主机使用不同的文件命名约定或惯例时很有用。 映射以下由 InPatternOutPattern 参数设置的模式。

InPattern 参数指定传入文件名的模板,此模板可能已根据 casentrans 设置进行处理。 模板变量$1$9可以包含在 InPattern 参数中。 除 $(美元符号)和 \$ (反斜杠,美元符号)以外,InPattern 参数中的所有字符,都是按字面意义处理的,并用作 InPattern 变量之间的定界符。 例如,如果 InPattern 参数是$1.$2而远程文件名是mydata.dat,值$1mydata和价值$2dat.

OutPattern 参数确定结果文件名。 变量$1$9替换为从 InPattern 参数和变量派生的值$0替换为原始文件名。 另外,如果 Sequence1 不为空,序列 [Sequence1,Sequence2 ] 将由 Sequence1 替换;否则它将由 Sequence2 的值替换。 例如,子命令:

nmap $1.$2.$3 [$1,$2].[$2,file]

会产生myfile.datamyfile.datamyfile.data.old,myfile.file myfilemyfile.myfile.myfile. 使用 \ (反斜杠) 符号可防止 OutPattern 参数中 $(美元符号) , [(左括号) ,] (右括号) 和 (逗号) 的特殊含义。

非打印 form non print 子命令的同义词。
ntrans [ InCharacters [ OutCharacters ]] 打开或关闭文件名字符转换机制。 如果未指定任何参数,字符转换将关闭。 如果指定了参数,那么将为 麦德麦德龙 子命令以及 获取 子命令转换源文件名中的字符 (如果未指定目标文件名)。

此子命令在本地和远程主机使用不同的文件命名约定或惯例时很有用。 字符转换遵从 InCharactersOutCharacters 参数设置的模式。 匹配 InCharacters 参数中字符的源文件名中的字符将由 OutCharacters 参数中对应的字符替换。

如果 InCharacters 参数指定的字符串比 OutCharacters 参数指定的字符串长,而且其在 OutCharacters 参数中无对应的字符,那么 InCharacters 参数中的字符将被删除。

open HostName [端口] 在由 HostName 参数所指定主机中建立对 FTP 服务器的连接。 如果可选的端口号已指定ftp 命令将尝试连接该端口中的服务器。 如果设置了自动登录功能 (即,未在命令行上指定 -n 标志) ,那么 ftp 命令会尝试将用户登录到 FTP 服务器。

您还必须拥有其中带有正确信息的 $HOME/.netrc 文件和正确的许可集。 .netrc 文件应在您的主目录中。

被动 切换文件传输的被动方式。 在被动方式关闭的情况下调用文件传输命令(如 getmget put,或 mput)时,ftp 服务器就会打开对客户机的数据连接。 在被动方式下,客户机在发送和接收数据的时候打开与服务器的数据连接。
PRIVATE 只有在设置认证方法后才将保护级别设置为专用。 在此级别,数据完整性和机密性都会得到保护。
提示符 切换交互式提示。 如果开启了交互式提示 (缺省值) ,那么 ftp 命令会在 mget期间检索,发送或删除多个文件之前提示验证。 mputmdelete 子命令。 否则,ftp 命令会根据所有指定的文件来执行。
保护 此命令会返回保护的当前级别。
proxy [子命令] 在辅助控制连接中执行 ftp 命令。 此子命令允许 ftp 子命令同时连接两个远程 FTP 服务器,以便在两个服务器之间传送文件。 第一个 proxy 子命令应该是用于建立辅助控制连接的 open 子命令。 输入 proxy? 子命令,查看其他在二级连接中可执行的 ftp 子命令。

以下子命令在由 proxy 子命令开头时的表现会不一样:

  • open 子命令在自动登录过程中不定义新的宏。
  • close 子命令不会擦除现有的宏定义。
  • getmget 子命令将文件从主连接上的主机传输到辅助连接上的主机。
  • putmputappend 子命令将文件从辅助连接上的主机传输到主连接上的主机。
  • restart 子命令可由 proxy 命令处理。
  • status 子命令显示准确的信息。

文件传输要求辅助连接的 FTP 服务器必须支持 PASV (passive) 指令。

LocalFile [ RemoteFile ] 将本地文件存储到远程主机中。 如果未指定 RemoteFile 参数,那么 ftp 命令将使用本地文件名来命名远程文件,并且远程文件名将被 ntransnmap 子命令所做的任何设置所改变。 ftp 命令使用 type form的当前设置。 方式,以及传输文件时的 struct 子命令。
pwd 显示远程主机中的当前目录名。
退出 关闭连接并退出 ftp 命令。 与 bye 子命令相同。
引号 字符串 逐字地将由 String 参数指定的字符串发送到远程主机。 执行 remotehelpquote help 子命令,显示 String 参数的有效值清单。
注: 涉及数据传输的 "Quoting" 命令可能会产生不可预测的结果。
RECORD struct record 子命令的同义词。
返回 RemoteFile [ LocalFile ] 将远程文件复制到本地主机。 与 get 子命令相同。
重新初始化 通过刷新所有 I/O 并允许完成传输操作来对 FTP 会话进行重新初始化。 按照用户已开始 FTP 会话但未登录到远程主机的情况复位所有缺省值。
remotehelp [子命令] 请求从远程 FTP 服务器获得帮助。
重命名 FromName ToName 重新命名远程主机上的文件。
重置 清除应答队列。 此子命令将使命令分析重新同步。
重启 get | put | append 在生成最后一个检查点的位置重新启动文件传输。 要想顺利运行,该子命令应与异常终止子命令相同,包括结构、类型和格式。 有效参数为 getputappend
rmdir RemoteDirectory 除去由远程主机中的 RemoteDirectory 参数所指定的远程目录。
运行 (ReceiveUnique) 在 getmget 子命令期间切换用于为本地目标文件创建唯一文件名的工具。 如果此功能为“关闭”状态(预设值),ftp 命令会覆盖本地文件。 否则,如果本地文件的名称与为本地目标文件指定的名称相同,那么 ftp 命令使用以下命令修改本地目标文件的指定名称:.1. 如果本地文件已在使用新名称,那么 ftp 命令会将后缀 .2 附加到指定的名称。 如果本地文件已使用了此第二个名称,那么 ftp 命令会在找到唯一的文件名或未找到唯一文件名但到达 .99 之前继续增加后缀。 如果 ftp 命令找不到唯一的文件名,ftp 会报告错误,传输过程也不会发生。 请注意 runique 子命令不会影响从 shell 命令产生的本地文件名。
安全 将保护级别设置为“safe”。 在此级别,数据的完整性会得到保护。
发送 LocalFile [ RemoteFile ] 将本地文件存储到远程主机中。 与 put 子命令相同。
发送端口 切换对于 FTP PORT 指令的使用。 根据预设, ftp 命令在为每个数据传输建立连接的时候会使用 PORT 指令。 当禁用 PORT 指令时,ftp 不会在数据传输中使用 PORT 命令。 PORT 指令在处理某些 FTP 服务器时很有用,那些服务器在未正确指示指令已被接受时会忽略 PORT 指令。
网站 参数 使用 chmod 命令显示或设置空闲超时周期、显示或设置文件创建 umask 或更改文件的许可权。 Args 参数可能的值是 umaskchmod
大小 RemoteFile 以字节的方式显示 RemoteFile 参数所指定的远程文件的大小。
状态 显示 ftp 命令的当前状态以及子命令的状态。
stream mode stream 子命令的同义词。
结构 [ 文件 | 记录 ] 设置数据传送结构类型。 有效的参数为 filerecord
文件
将数据传输结构类型设置为 file。
RECORD
将数据传输结构类型设置为 record。
阳光 (发送/存储唯一) 在 putmput 子命令期间切换用于为远程目标文件创建唯一文件名的工具。 如果此功能为“关闭”状态(预设值),ftp 命令会覆盖远程文件。 否则,如果远程文件名与为远程目标文件指定的名称相同,远程 FTP 服务器会修改远程目标文件的名称。 请注意远程服务器必须支持 STOU 指令。
系统 显示在远程机器上运行的操作系统类型。
telnet form telnet 子命令的同义词。
十胜 type tenex 子命令的同义词。
跟踪 切换包跟踪。
type [ ascii | binary | ebcdic | image | local M | tenex ] 设置文件传输类型。 有效参数是 asciibinaryebcdicimagelocal Mtenex。 如果参数未指定,那么当前类型被显示。 缺省类型为 asciibinary 类型可能会比 ascii 更有效。
ASCII
将文件传输类型设置为网络 ASCII。 此类型为缺省值。 文件传输使用二进制映像传送可能会更有效。 请参阅 binary 参数,以取得更多信息。
二元
将文件传输类型设置为二进制映像。 此类型可能比 ASCII 传送更有效。
EBCDIC
将文件传输类型设置为 EBCDIC。
image
将文件传输类型设置为二进制映像。 此类型可能比 ASCII 传送更有效。
本地 M
将文件传输类型设置为本地。 M 参数定义每计算机字位的十进制数。 此参数没有缺省值。
十胜
将文件传输类型设置为 TENEX 机器需要的类型。
user 用户 [密码] [帐户] 识别远程 FTP 服务器的本地用户(User)。 如果未指定 Password Account 参数,而远程服务器需要它,那么 ftp 命令会提示输入本地的密钥和帐户。 如果 Account 参数是必须的,那么 ftp 命令会在远程登录过程完成后将它发送到远程服务器。
注: 除非通过在命令行上指定 -n 标志来禁用自动登录,否则 ftp 命令将发送 User密码帐户 参数自动用于与远程服务器的初始连接。 您还需要主目录中的 .netrc 文件以发出自动登录。
verbose 切换详细方式。 如果详细方式启用(缺省值),ftp 命令将显示远程 FTP 服务器的全部响应。 另外, ftp 命令会在传输完成后显示所有文件传输的统计信息。

示例

  1. 要调用 ftp 命令,请登录到系统canopus, 显示本地帮助信息,显示远程帮助信息,显示状态,切换 bellpromptruniquetrace, 和 verbose 子命令,然后退出,输入:
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    Name (canopus:eric): dee
    331 Password required for dee.
    Password:
    230 User dee logged in.
    ftp> help
    Commands may be abbreviated. Commands are:
    !          delete          mdelete          proxy          runique
    $          debug           mdir             sendport       send
    account    dir             mget             put            size
    append     disconnect      mkdir            pwd            status
    ascii      form            mls              quit           struct
    bell       get             mode             quote          sunique
    binary     glob            modtime          recv           system
    bye        hash            mput             remotehelp     tenex
    case       help            nmap             rstatus        trace
    cd         image           nlist            rhelp          type
    cdup       lcd             ntrans           rename         user
    close      ls              open             reset          verbose
    cr         macdef          prompt           rmdir          ?
    clear      private         protect          safe
    ftp> remotehelp
    214-The following commands are recognized(* =>'s unimplemented).
     USER   PORT   RETR   MSND*  ALLO   DELE   SITE*  XMKD   CDUP 
     PASS   PASV   STOR   MSOM*  REST*  CWD    STAT*  RMD    XCUP
     ACCT*  TYPE   APPE   MSAM*  RNFR   XCWD   HELP   XRMD   STOU 
     REIN*  STRU   MLFL*  MRSQ*  RNTO   LIST   NOOP   PWD 
     QUIT   MODE   MAIL*  MRCP*  ABOR   NLST   MKD    XPWD 
     AUTH   ADAT   PROT   PBSZ   MIC    ENC    CCC
    214 Direct comments to ftp-bugs@canopus.austin.century.com.
    ftp> status
    Connected to canopus.austin.century.com.
    No proxy connection.
    Mode: stream; Type: ascii; Form: non-print; Structure: file
    Verbose: on; Bell: off; Prompting: on; Globbing: on
    Store unique: off; Receive unique: off
    Case: off; CR stripping: on
    Ntrans: off
    Nmap: off
    Hash mark printing: off; Use of PORT cmds: on
    ftp> bell
    Bell mode on.
    ftp> prompt
    Interactive mode off.
    ftp> runique
    Receive unique on.
    ftp> trace
    Packet tracing on.
    ftp> verbose
    Verbose mode off.
    ftp> quit
    $ 
  2. 要调用 ftp 命令,请登录到系统canopus,打印工作目录,更改工作目录,将文件传输类型设置为 ASCII ,将本地文件发送到远程主机,将工作目录更改为父目录,然后退出,输入:
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    Name (canopus:eric): dee
    331 Password required for dee.
    Password:
    230 User dee logged in.
    ftp> pwd
    257 "/home/dee" is current directory.
    ftp> cd desktop
    250 CWD command successful.
    ftp> type ascii
    200 Type set to A.
    ftp> send typescript
    200 PORT command successful.
    150 Opening data connection for typescript (128.114.4.99,1412).
    226 Transfer complete.
    ftp> cdup
    250 CWD command successful.
    ftp> bye
    221 Goodbye.
    $ 
  3. 要使用自动登录 (使用 .netrc 文件) 调用 ftp 命令,请打开与系统的会话canopus,登录,将工作目录更改为父目录,打印工作目录,列出当前目录的内容,删除一个文件,将当前目录的内容列表写入本地文件,关闭会话,然后退出,输入:
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    331 Password required for dee.
    230 User dee logged in.
    ftp> cdup
    250 CWD command successful.
    ftp> pwd
    257 "/home" is current directory.
    ftp> dir
    200 PORT command successful.
    150 Opening data connection for /usr/bin/ls (128.114.4.99,1407) 
    (0 bytes).
    total 104
    drwxr-xr-x   2 system        32 Feb 23 17:55 bin
    Drwxr-xr-x  26 rios        4000 May 30 17:18 bin1
    drwxr-xr-x   2 system        32 Feb 23 17:55 books
    drwxrwxrwx  18 rios        1152 Jun  5 13:41 dee
    -r--r--r--   1 system      9452 May 17 12:21 filesystems
    drwxr-xr-x   2 system        32 Feb 23 17:55 jim
    drwxr-xr-x   5 system        80 Feb 23 17:55 krs
    drwxrwxrwx   2 rios       16432 Feb 23 17:36 lost+found
    -rwxr-xr-x   1 rios        3651 May 24 16:45 oldmail
    drwxr-xr-x   2 system       256 Feb 23 17:55 pubserv
    drwxrwxrwx   2 system       144 Feb 23 17:55 rein989
    drwxr-xr-x   2 system       112 Feb 23 17:55 reinstall
    226 Transfer complete.
    ftp> delete oldmail
    250 DELE command successful.
    ftp> mdir /home/dee/bin binlist
    output to local-file: binlist? y
    200 PORT command successful.
    150 Opening data connection for /usr/bin/ls (128.114.4.99,1408) (0 bytes).
    226 Transfer complete.
    ftp> close
    221 Goodbye.
    ftp> quit
    $  

文件

描述
/usr/samples/tcpip/netrc 包含 .netrc 样本文件。
/etc/syslog.conf 包含 syslogd 守护程序的配置信息。