ftp 命令打开 Internet 文件传输协议的用户接口。此用户接口又称为命令解释程序,它允许您登录到远程系统并对其文件系统执行各种操作。下表概述了主要操作。
与 rlogin 和 rcp 相比,ftp 的主要优点在于 ftp 不要求远程系统运行 UNIX。不过,远程系统却需要进行 TCP/IP 通信配置。但是,与 ftp 相比,rlogin 提供使用的文件处理命令更丰富。
命令 |
说明 |
---|---|
ftp |
访问 ftp 命令解释程序。 |
ftp remote-system |
建立与远程系统的 ftp 连接。有关说明,请参见如何打开与远程系统的 ftp 连接。 |
open |
从命令解释程序登录到远程系统。 |
close |
从远程系统注销并返回到命令解释程序。 |
bye |
退出 ftp 命令解释程序。 |
help |
列出所有 ftp 命令;或者如果提供了命令名称,则简要说明该命令所执行的操作。 |
reset |
使命令-回复序列与远程 ftp 服务器再次同步。 |
ls |
列出远程工作目录的内容。 |
pwd |
显示远程工作目录的名称。 |
cd |
更改远程工作目录。 |
lcd |
更改本地工作目录。 |
mkdir |
在远程系统上创建目录。 |
rmdir |
删除远程系统上的目录。 |
get, mget |
将远程工作目录中的某个文件(或多个文件)复制到本地工作目录。 |
put, mput |
将本地工作目录中的某个文件(或多个文件)复制到远程工作目录。 |
delete, mdelete |
删除远程工作目录中的某个文件(或多个文件)。 |
有关更多信息,请参见 ftp(1)。
您必须具有 ftp 验证,如远程登录验证 (ftp) 中所述。
使用 ftp 命令打开与远程系统的连接。
$ ftp remote-system |
如果连接成功,则会显示确认消息和提示。
键入用户名。
Name (remote-system:user-name): user-name |
如有提示,请键入口令。
331 Password required for user-name: Password: password |
如果要访问的系统已建立了匿名 ftp 帐户,将会提示您输入电子邮件地址作为口令。如果 ftp 接口接受您的口令,则它会显示确认消息和 (ftp>) 提示符。
您现在可使用 ftp 接口提供的任何命令,包括 help。表 29–3 概述了主要命令。
此 ftp 会话由远程系统 pluto 中的用户 smith 建立:
$ ftp pluto Connected to pluto. 220 pluto FTP server ready. Name (pluto:smith): smith 331 Password required for smith: Password: password 230 User smith logged in. ftp> |
ftp> bye 221-You have transferred 0 bytes in 0 files. 221-Total traffic for this sessions was 172 bytes in 0 transfers. 221-Thanks you for using the FTP service on spdev. 221 Goodbye. |
转至要将远程系统中的文件复制到其中的本地系统目录。
$ cd target-directory |
转至源目录。
ftp> cd source-directory |
如果系统正在使用自动挂载程序,则远程系统用户的起始目录可能与 /home 中您的起始目录并行。
确保您对源文件具有读取权限。
ftp> ls -l |
将传送类型设置为 binary。
ftp> binary |
要复制单个文件,请使用 get 命令。
ftp> get filename |
要一次复制多个文件,请使用 mget 命令。
ftp> mget filename [filename ...] |
您可提供一系列单个文件名,也可使用通配字符。mget 命令会分别复制每个文件,并且每次都要求您进行确认。
关闭 ftp 连接。
ftp> bye |
在此示例中,用户 kryten 将打开与系统 pluto 的 ftp 连接,并使用 get 命令来复制 /tmp 目录中的单个文件。
$ cd $HOME ftp pluto Connected to pluto. 220 pluto FTP server (SunOS 5.8) ready. Name (pluto:kryten): kryten 331 Password required for kryten. Password: xxx 230 User kryten logged in. ftp> cd /tmp 250 CWD command successful. ftp> ls 200 PORT command successful. 150 ASCII data connection for /bin/ls (129.152.221.238,34344) (0 bytes). dtdbcache_:0 filea files ps_data speckeysd.lock 226 ASCII Transfer complete. 53 bytes received in 0.022 seconds (2.39 Kbytes/s) ftp> get filea 200 PORT command successful. 150 ASCII data connection for filea (129.152.221.238,34331) (0 bytes). 221 Goodbye. |
在此示例中,同一用户 kryten 使用 mget 命令将 /tmp 目录中的一组文件复制到其起始目录。请注意,kryten 可以接受或拒绝该文件组中的个别文件。
$ ftp> cd /tmp 250 CWD command successful. ftp> ls files 200 PORT command successful. 150 ASCII data connection for /bin/ls (129.152.221.238,34345) (0 bytes). fileb filec filed remote: files 21 bytes received in 0.015 seconds (1.36 Kbytes/s) ftp> cd files 250 CWD command successful. ftp> mget file* mget fileb? y 200 PORT command successful. 150 ASCII data connection for fileb (129.152.221.238,34347) (0 bytes). 226 ASCII Transfer complete. mget filec? y 200 PORT command successful. 150 ASCII data connection for filec (129.152.221.238,34348) (0 bytes). 226 ASCII Transfer complete. mget filed? y 200 PORT command successful. 150 ASCII data connection for filed (129.152.221.238,34351) (0 bytes). 226 ASCII Transfer complete.200 PORT command successful. ftp> bye 221 Goodbye. |
您键入 ftp 命令的目录是本地工作目录,也即此操作的源目录。
建立 ftp 连接。
转至目标目录。
ftp> cd target-directory |
请记住,如果系统正在使用自动挂载程序,则远程系统用户的起始目录可能与 /home 中您的起始目录并行。
确保您对目标目录具有写入权限。
ftp> ls -l target-directory |
将传送类型设置为 binary。
ftp> binary |
要复制单个文件,请使用 put 命令。
ftp> put filename |
要一次复制多个文件,请使用 mput 命令。
ftp> mput filename [filename ...] |
您可提供一系列单个文件名,也可使用通配字符。mput 命令会分别复制每个文件,并且每次都要求您进行确认。
要关闭 ftp 连接,请键入 bye。
ftp> bye |
在此示例中,用户 kryten 将打开与系统 pluto 的 ftp 连接,并使用 put 命令将其系统中的文件复制到系统 pluto 上的 /tmp 目录。
$ cd /tmp ftp pluto Connected to pluto. 220 pluto FTP server (SunOS 5.8) ready. Name (pluto:kryten): kryten 331 Password required for kryten. Password: xxx 230 User kryten logged in. ftp> cd /tmp 250 CWD command successful. ftp> put filef 200 PORT command successful. 150 ASCII data connection for filef (129.152.221.238,34356). 226 Transfer complete. ftp> ls 200 PORT command successful. 150 ASCII data connection for /bin/ls (129.152.221.238,34357) (0 bytes). dtdbcache_:0 filea filef files ps_data speckeysd.lock 226 ASCII Transfer complete. 60 bytes received in 0.058 seconds (1.01 Kbytes/s) ftp> bye 221 Goodbye. |
在此示例中,同一用户 kryten 使用 mput 命令将其起始目录中的一组文件复制到 pluto 的 /tmp 目录。请注意,kryten 可以接受或拒绝该文件组中的个别文件。
$ cd $HOME/testdir $ ls test1 test2 test3 $ ftp pluto Connected to pluto. 220 pluto FTP server (SunOS 5.8) ready. Name (pluto:kryten): kryten 331 Password required for kryten. Password: xxx 230 User kryten logged in. ftp> cd /tmp 250 CWD command successful. ftp> mput test* mput test1? y 200 PORT command successful. 150 ASCII data connection for test1 (129.152.221.238,34365). 226 Transfer complete. mput test2? y 200 PORT command successful. 150 ASCII data connection for test2 (129.152.221.238,34366). 226 Transfer complete. mput test3? y 200 PORT command successful. 150 ASCII data connection for filef (129.152.221.238,34356). 226 Transfer complete. ftp> bye 221 Goodbye. |