文件传输程序
ftp [-deinpgv] [host]
ftp是标准的FTP文件传输协议的客户端软件。用于访问FTP服务器,上传或下载文件。其中,host是FTP服务器的主机名或IP地址。
实际上,ftp是一种交互式的文件传输工具。在运行ftp命令进入交互环境之后,ftp将会输出一个“ftp>”提示符,等待用户输入命令。利用ftp的内置命令,可以上传或下载指定的文件。如果在运行ftp命令时没有指定FTP服务器,也可以在交互环境,利用open内置命令,连接远程FTP服务器。
在文件传输期间,当需要终止文件传输时,可以在终端键盘上按下中断键(Ctrl-C组合键)。在运行get、put、mget或mput等命令时,如果指定的文件名是“-”,表示读取标准输入或写到标准输出。如果命令行参数含有空格,参数前后需加引号。
如果文件名参数的首字符是竖线“|”,随后的参数将被解释为一个Shell命令。ftp将会利用popen(3),以竖线“|”后面的命令行字符串为参数,创建一个Shell进程,从当前的标准输出读取数据,把输出数据写到当前的标准输入。如果竖线后面的命令行含有空格,整个命令行前后必须加引号。
-d 启用调试模式。
-e 禁止命令行编辑与命令历史支持。
-g 禁止文件名扩展,即禁止展开文件名中的通配符。
-i 关闭传输多个文件期间的交互提示方式。
-m 在被动模式中,ftp通常把数据信道和控制信道绑定到同一网络接口。当客户端配有多个网络接口时,这一处理方式是非常有用的。利用“-p”选项,可以禁止这一处理方式。
-n 禁止ftp在初始连接时尝试“自动注册”。如果启用了“自动注册”功能,ftp将会检测用户主目录($HOME)中的.netrc文件,检测其中是否存在远程系统的主机名(包括用户名与密码)记录,如果不存在,ftp会提示用户输入远程系统的用户名(默认值是本地系统当前用户的名字),以及必要的密码等。
-p 使用被动模式传输数据,允许在防火墙环境中使用ftp命令。目前,这是ftp等客户端软件默认的做法,无须特别指定。
-v 强制ftp显示来自远程FTP服务器的所有响应信息,以及显示数据传输的统计信息。
! [cmd [args]] 调用本地系统的交互Shell,执行指定的命令。如果未提供命令,则直接进入本地系统的交互Shell运行环境。
append local-file [remote-file] 把本地文件附加到远程系统中的文件后面。如果未指定远程文件,则采用本地文件名作为远程文件名。
ascii 设置文件传输类型,支持ASCII文本文件传输。这是默认的传输方式。
bell 开关警示音。在每个文件传输完成之后,输出一次警示音。
binary(image) 设置文件传输类型,支持二进制文件传输。
bye 终止与远程FTP服务器的会话,并退出ftp命令。注意,一个文件结束符也会终止ftp会话,结束ftp的运行。
case 开关远程系统在执行mget期间的文件名大小写字母映射机制。当case 为on(默认值为off)时,如果远程系统的文件名中存在大写字母,在写入本地目录时均映射为相应的小写字母。
cd remote-dir 改换远程系统上的当前工作目录到指定的目录。
cdup 把远程系统的工作目录改换为当前目录的父目录。
chmod mode file 修改远程文件的模式字段(访问权限)。
close 终止与远程FTP服务器的会话,返回到ftp命令环境。
cr 开关接收ASCII类型文件期间的回车删除机制。在ASCII类型的文件传输期间,一个数据行(或记录)是由回车与换行符序列标识的。当打开cr开关(默认)时,在收到完整的数据行之后,ftp会删除回车字符,以符合使用单个换行符作为数据行终止符的惯例。在ASCII类型的文件传输期间,仅当cr处于off状态时,才使用换行符作为数据行的分隔符。
delete remote-file 删除远程系统中的指定文件。
debug [level] 开关调试模式。选用的参数level用于设置调试级别。当启用调试模式时,ftp将会输出发送给远程FTP服务器的每一个命令,同时插入一个“-->”字符串前缀。
dir [remote-dir] [local-file] 列出远程主机指定目录中的文件与目录,把输出结果保存在指定的本地文件中。如果未指定远程目录,默认的目录为远程主机的当前工作目录。如果未指定本地文件,或指定的本地文件为“-”,直接在终端上显示输出结果。如果启用了交互提示模式,ftp会提示用户确认最后一个文件参数local-file是否用于接受dir命令的输出。
disconnect 相当于close命令。
get remote-file [local-file] 下载远程文件,储存在本地系统。如果未指定本地文件名,采用远程文件名命名本地文件。如果指定的远程文件名含有通配符,只有文件名展开后的第一个文件名被采用。
glob 对于mdelete、mget和mput命令,启用或禁用文件名展开机制。如果禁用文件名展开机制,文件名参数不管是否包括通配符,均按其文字原样采用。
hash 开关以“#”表示的每个数据块传输进度的显示(每个数据块为1024字节)。
help [cmd] 显示指定内部命令的说明信息。如果未指定任何命令,ftp将列出所有可用的内部子命令。
idle [seconds] 设置远程FTP服务器的空闲时间时钟。如果省略了时间参数seconds,显示当前空闲时间的时钟设置。
lcd [dir] 改变本地系统中的当前工作目录。如果未指定目录,则进入用户的主目录。
ls [-a] [remote-dir] [local-file] 以长列表的形式,列出FTP服务器指定目录中的文件或子目录,给出文件的类型与访问权限、链接计数、文件属主、用户组、文件的字节数及最近修改时间等属性,其效果类似于Linux系统中的“ls -l”命令。其中,“-a”选项意味着列出所有文件,包括以句点“.”为首字符的隐藏文件。如果未指定远程目录,默认的目录为当前工作目录。如果未指定本地文件,或者本地文件名为“-”,表示输出内容直接送到终端显示。如果启用了交互提示模式,ftp将会提示用户确认最后一个文件参数local-file是否用于接收ls命令的输出。
mdelete [remote-files] 删除远程系统中的多个文件。
mdir remote-files local-file 类似于dir命令,区别是mdir能够同时指定多个远程目录或文件。如果启用了交互提示模式,ftp将会提示用户确认最后一个文件参数local-file是否用于接收mdir命令的输出。
mget remote-files 一次下载多个文件。按文件名生成机制展开含有通配符的远程文件名,对每个文件执行一次get操作。下载的文件存储在本地工作目录或之前由“lcd dir”命令指定的目录中。除非启用了case和runique等开关,且本地系统存在同名的文件,下载后的文件通常与远程文件同名。如果需要,也可以首先使用“! mkdir dir”命令在本地系统中创建新的目录。
mkdir remote-dir 在远程系统上创建指定的目录。
mls remote-files local-file 类似于nlist命令,其区别是mls命令能够同时指定多个远程目录或文件,且必须指定本地文件。如果启用了交互提示模式,ftp将会提示用户确认最后一个文件参数local-file是否用于接收mls命令的输出。
mode [modename] 设置FTP的文件传输模式,默认的文件传输模式是stream。
modtime file 显示远程系统中指定文件的最近修改时间。
mput local-files 一次上传多个文件。按文件名生成机制展开含有通配符的本地文件名,对每个文件执行一次put操作。除非启用了sunique等开关,且远程系统存在同名的文件,上传的文件通常与本地文件同名。
newer file-name [local-file] 仅当远程文件的最近修改时间比本地系统中的文件更新时,才从FTP服务器中下载指定的文件。如果本地系统不存在同名的文件,则认为是远程文件更新。
nlist [remote-dir] [local-file] 列出远程系统指定目录中的文件。如果未指定远程目录,列出远程系统当前目录中的文件。如果启用了交互提示模式,ftp将提示用户确认最后一个文件参数local-file是否用于接收nlist命令的输出。如果未指定本地文件,或指定的本地文件为“-”,则在终端上显示nlist命令的输出。
open host [port] 与指定的FTP服务器建立连接。也可以指定选用的端口号,采用非标准的端口连接FTP服务器。如果处于默认的“自动注册”方式,ftp也会尝试自动注册到远程FTP服务器。
prompt 开关交互提示模式。在传输多个文件期间,通常会进入交互提示模式,从而允许用户有选择性地接收或存储文件。如果禁用(默认的方式为启用)交互提示模式,mget或mput 将会连续地依次传输指定的所有文件,mdelete会自动删除指定的所有文件,无须用户干预。
put local-file [remote-file] 把本地文件上传到FTP服务器。如果未指定远程文件名,则使用本地文件名命名远程文件。如果指定的本地文件名含有通配符,只有文件名展开后的第一个文件名被用。
pwd 显示FTP服务器的当前工作目录。
quit 等同于bye命令。
recv remote-file [local-file] 等同于get命令。
reget remote-file [local-file] 类似于get命令,其区别是:如果local-file存在且小于remote-file,则假定local-file是remote-file部分传输的副本,因而可从断点位置开始继续传输文件。当在一个不稳定的网络上传输较大的文件时,这个命令是非常有用的。
remotehelp [cmd] 显示远程FTP服务器的帮助信息。如果指定了具体的命令,则显示相应命令的说明。
remotestatus [file] 显示远程系统中指定文件的状态信息。如果省略了文件参数,显示远程FTP服务器的状态信息。
rename [from] [to] 把远程系统中的文件from重新命名为to。
reset 清除响应队列。这个命令的主要用途是与远程FTP服务器重新同步命令/响应序列。当会话期间出现逻辑混乱时,重新同步是非常必要的。
restart marker 在get或put命令之后运行此命令,将会在指定的标记位置开始重新传输文件。在UNIX或Linux系统中,标记marker通常是文件的字节偏移值。
rmdir dir 删除远程系统中的指定目录。
runique 开关本地系统中文件名唯一性的维护机制。如果利用get或mget命令下载的远程文件与本地系统中的现有文件同名,下载的文件将会在文件名后面附加一个“.1”或“.2”后缀,依次类推。同时显示生成的唯一文件名。如果继续重复,直至超越“.99”,ftp将会输出一个错误信息。终止文件的继续传输。默认值是不检测文件名的唯一性。
send local-file [remote-file] 等同于put命令。
size remote-file 返回远程系统中指定文件的大小。
status 显示ftp会话的当前状态。
sunique 开关远程系统中文件名唯一性的维护机制。远程FTP服务器必须支持STOU命令及相关协议,才能确保文件名唯一性的成功实现。上传完成之后FTP服务器将会报告生成的唯一文件名。默认值是不检测文件名的唯一性。
system 显示远程系统操作系统的类型。
trace 开关分组数据的跟踪机制。
type [type-name] 设置文件传输的类型。如果未指定文件传输类型,ftp将显示当前的类型。默认的文件传输类型是ASCII字符。
umask [newmask] 设置远程FTP服务器默认的文件掩码(umask)。如果省略了newmask参数,则显示FTP服务器当前的掩码设置。
user user-name [password] 向远程FTP服务器提供用户名与密码等,标识自己的身份。如果未指定密码,且FTP服务器需要提供时,ftp将提示用户输入密码。在输入密码期间禁止本地回显。除非运行ftp时禁用了“自动注册”功能。在初始连接FTP服务器时,这一过程会自动执行。
verbose 开关详细显示模式。在详细显示模式中,ftp将会显示FTP服务器的所有响应信息。此外,在文件传输完成之后,也会显示有关文件传输效率的统计数据。通常,ftp总是处于详细显示模式。
? [cmd] 等同于help命令。
1. 当需要采用通配符指定文件名,一次传输多个文件时,为避免交互提示与确认,可以指定“-i”选项。
$ ftp –i iscas Connected to iscas (192.168.90.100). 220 (vsFTPd 2.2.2) 331 Please specify the password. 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
2. 此时,可以无须干预地一次下载多个文件。
ftp> mget u* local: ucontext.h remote: ucontext.h 227 Entering Passive Mode (192,168,90,100,197,106). 150 Opening BINARY mode data connection for ucontext.h (2015 bytes). 226 Transfer complete. 2015 bytes received in 0.0281 secs (71.80 Kbytes/sec)
索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z