zzxworld

Linux ftp 命令用法示例和选项列表

ftp 是 File Transfer Program 的缩写,即文件传输程序。在 Linux 服务器上用来传输文件。本地和服务器之间,或是不同服务器之间都可以。

ftp 命令格式

ftp 命令的使用格式如下:

ftp [选项...] [主机地址]

可以看到,命令选项和主机地址都是可以省略的。如果提供主机地址,在命令开始执行时会尝试链接到主机。如果不提供主机地址,也可以在进入 ftp 控制台后再使用 open 内部命令连接到指定的主机地址。

上面说的到 ftp 控制台就是在执行 ftp 命令后进入的一个命令提示环境,它的显示样式如下:

zzxworld@debian:~$ ftp
ftp>

这时就可以在 ftp> 提示符后开始使用 ftp 的内部命令(也被称为子命令)来操作文件了。

ftp 命令示例

help 是第一个需要掌握的内部命令:

ftp> help

使用它可以列出有哪些可用的内部命令。在刚使用 ftp 命令的阶段,通过这个命令可以快速掌握 ftp 命令的相关功能。如果对某个内部命令的作用不熟悉,也可以通过这个命令来了解。比如想知道 open 命令是用过来做什么的:

ftp> help open
open            connect to remote ftp

一看就明白了,是连接到远程 FTP 主机的。help 命令有一个缩写符号:?,使用这个问号跟使用 help 命令是一样的。

在 ftp 控制台环境下使用命令和在系统环境下使用命令是类似的。举几个例子,比如要连接到指定的主机 192.168.0.100:

ftp> connect 192.168.0.100

查看连接后服务器端主机 ftp 目录下的文件:

ftp> ls

在服务器端创建目录:

ftp> mkdir test

切换服务器端的目录位置:

ftp> cd test

下载服务器端的文件到本地:

ftp> get test.txt

上传本地文件到服务器:

ftp> put test.txt

断开 ftp 链接:

ftp> disconnect

退出 ftp 控制台:

ftp> quit

可以看到,只要清楚有哪些可用的内部命令,基本就掌握了 ftp 的用法。下面总结了这些可用的命令名称和用途说明。

ftp 内部命令参考

命令名称 说明
! [command [args]] 在本地机器上启动一个交互的 shell。可以使用 commandargs 来指定 shell 命令和参数。
$ macro-name [args] 执行宏命令。宏命令使用 macdef 命令来定义。macro-name 表示宏命令名称。
account [passwd] 为访问资源设置密码。
append local-file [remote-file] 添加本地文件到服务器上。
ascii 将当前文件传输方式设置为文本模式。
bell 文件传送命令完成后用响铃提示。
binary 将文件传输方式设置为二进制模式。
bye 终止与服务器的连接并退出 ftp。
case 调整服务器端文件名大小写转换规则。
cd remote-directory 切换服务器端的目录位置。
cdup 切换服务器端当前位置到上级目录。
chmod mode file-name 修改服务器端指定文件的 mode 权限。
close 终止与服务器的 FTP 连接。
cr 切换文本传输模式下的回车换行转换规则。
delete remote-file 删除服务器端指定的文件。
debug [debug-value] 设置 debugging 状态,用以确定是否跟踪每条指令。
dir [remote-directory] [local-file] 显示服务器端目录下的文件名。local-file 是可选的,如果指定了这个参数,将会把结果保存到本地指定的文件。
disconnect close 命令功能类似。
form format 设置文件传输格式。
get remote-file [local-file] 把服务器端的文件传输到本地。
glob 设置文件名匹配规则。
hash 设置是否显示数据传输进度。
help [command] 显示命令列表或命令帮助。
idle [seconds] 设置服务器端的最长空闲时间,单位为秒。在超过指定的空闲时间里没有任何操作,将自动断开与服务器端的连接。
lcd [directory] 切换本地端的工作目录。
ls [remote-directory] [local-file] 显示服务器端目录下的文件列表。
macdef macro-name 定义一个宏命令。
mdelete [remote-files] 删除服务器端指定的文件。
mdir remote-files local-file dir 命令相似, 但是允许匹配多个服务器端文件。
mget remote-files get 命令类似,但允许匹配多个服务器端文件。
mkdir directory-name 在服务器端创建目录。
mls remote-files local-file nlist 命令相似,但是允许匹配多个服务器端文件, 而且 local-file 这个参数必须的,是用来保存输出结果的本地文件。
mode [mode-name] 设置文件传输模式。
modtime file-name 显示服务器端文件最后修改时间。
mput local-files put 命令类似,但允许匹配多个本地文件名。
newer file-name [local-file] 比较服务器端文件和本地文件的修改时间。如果服务器端文件比本地文件新, 或本地文件不存在, 则从服务器端机器上传输此文件。
nlist [remote-directory] [local-file] 显示服务器端指定目录下的文件列表。
nmap [inpattern outpattern] 设置或取消文件名映射机制。
ntrans [inchars [outchars]] 设置或取消文件名字符转换机制。|
open host [port] 连接到指定的 FTP 服务器。
prompt 切换交互提示功能状态。
proxy ftp-command 使用 FTP 副连接。使用这个命令可以同时连接到两个远端 ftp 服务器, 并在这两个服务器之间传送文件。|
put local-file [remote-file] 将本地文件传输到服务器端。
pwd 显示服务器端当前路径。
quit bye 命令功能类似。|
quote arg1 arg2 ... 将指定的参数原样发送到服务器端。
recv remote-file [local-file] get 命令相似。
reget remote-file [local-file] get 命令相似, 但支持断点续传。
remotehelp [command-name] 显示服务器端 FTP 服务程序的帮助信息。|
remotestatus [file-name] 显示服务器端机器或文件状态。
rename [from] [to] 重命名服务器端文件。|
reset 清除应答队列。
restart marker 从设置的 marker 标记处重新开始。
rmdir directory-name 删除服务器端上的目录。|
runique 设置本地同名文件是否自动覆盖。|
send local-file [remote-file] put 命令相似。
sendport 设置是否使用 PORT 命令。
site arg1 arg2 ... 将参数作为 SITE 命令原样传给服务器。|
size file-name 显示服务器端文件大小。|
status 显示 FTP 当前状态。|
struct [struct-name] 设置文件传输结构。
sunique 设置是否覆盖服务器端同名文件。
system 显示服务器端操作系统类型。
tenex 设置文件传输方式为与 TENEX 机器通讯所需要的方式。|
trace 设置是否跟踪每个数据包。
type [type-name] 设置或显示当前文件传送类型。
umask [newmask] 设置或显示服务器端文件掩码。
user user-name [password] [account] 使用指定用户名 [user-name] 登录 FTP 服务器。
verbose 设置是否显示详细信息。
? [command] help 命令的缩写。

ftp 命令选项参考

选项名称 说明
-p 使用被动模式进行数据传输。当本地网络有防火墙导致外部主机不能连接进来时,使用此选项可以要求 ftp 服务器支持 PASV 命令。
-i 在进行多个文件传输时关闭交互式确认提示。
-n 关闭启动 ftp 时的自动登录功能。
-e 关闭命令编辑和历史命令功能。
-g 关闭文件名匹配功能.
-v 显示更详细的命令执行信息。
-d 打开 debug 调试模式。