Linux下如何使用FTP传输文件

FTP 命令

以下是一些常用的 ftp 命令:

命令描述
open打开与网络上另一台计算机的连接。
get将文件从远程系统传输到本地系统 %26#8217;s 当前目录。
put将文件从本地系统传输到远程系统上的目录。
mget将多个文件从远程系统传输到本地系统 %26#8217;s 当前目录。
mput将多个文件从本地系统传输到远程系统上的目录。
bye/quit启用退出 FTP 环境。
close终止与另一台计算机的连接
ascii将文件传输模式设置为 ASCII
binary将文件传输模式设置为二进制
cd更改远程机器上的目录
delete删除或者移除当前远程目录中的文件
help请求所有可用 FTP 命令的列表
lcd更改本地机器上的目录
ls列出当前远程目录中的文件名
mkdir在当前远程目录中创建一个新目录
pwd找出远程机器上当前目录的路径名
rmdir移除或者删除当前远程目录中的目录
prompt在完成传输之前,提示您确认每个文件的传输。默认情况下,提示设置为开启。

注意:我们可以使用 ?请求有关 ftp 命令的帮助或者其他信息。

FTP 简介

FTP 是一种网络协议,用于通过 TCP/IP 网络交换文件。
FTP 实现了基于用户的密码认证。
FTP 还允许匿名用户访问,其中密码通常是有效的电子邮件地址。
我们可以使用 ftp 命令访问远程系统以交换文件。

# ftp hostname/IP address

如果系统上没有可用的 ftp 命令,我们可以使用可用的包管理器安装它。
例如,对于 CentOS/RHEL 系统:

# yum install ftp

传输多个文件

下面显示的示例建立从 host1 系统到 host2 系统的 FTP 连接,并使用 prompt 、 mget 和 mput 命令传输多个文件。

$ ftp host2
Connected to host2.
220 host2 FTP server ready.
Name (host2:user2): user2
331 Password required for user2.
Password:
230 User user2 logged in.
Remote system type is UNIX.
Using binary mode to transfer files.

默认情况下,提示模式是打开的,当我们键入提示命令时,它将禁用提示模式(交互模式),并且在执行诸如 get、put 等任何操作之前不会要求我们进行确认。

ftp> prompt
Interactive mode off
ftp> mget file.1 file.2
200 PORT command successful.
150 Opening BINARY mode data
226 Transfer complete.
200 PORT command successful.
150 Opening BINARY mode data
226 Transfer complete.
ftp> mput file3 file4
200 PORT command successful.
150 Opening BINARY mode data
226 Transfer complete.
之路教程 https://onitr oad .com

使用 ASCII 模式传输文件

下面的例子我们将:
1.建立从host1系统到host2系统的FTP连接。

  1. 连接建立后,我们将传输方式改为ASCII方式。

  2. 我们将在host2 上获取文件test1.txt,将test1.txt 文件存储在host1 的本地目录中,并退出FTP 会话。

$ ftp host2
Connected to host2.
220 host2 FP server ready.
Name (host2:user): user
331 Password required for user.
Password: password
230 User user logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ascii
200 Type set to A.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
test1.txt
(directory list truncated)
226 Transfer complete.
133 bytes received in 0.081 seconds (1.61 Kbytes/s)
ftp> get test1.txt
200 PORT command successful.
150 Opening ASCII mode data connection for test1.txt (57 bytes).
226 Transfer complete.
local: test1.txt remote: test1.txt
66 bytes received in 0.042 seconds (1.54 Kbytes/s)
ftp> bye
221-You have transferred 66 bytes in 1 files.
221-Total traffic for this session was 1326 bytes in 4 transfers. 221-Thank you for using the FTP service on host2.
221 Goodbye.

FTP 传输模式

FTP 支持两种传输模式:

  • 美国信息交换标准代码 (ASCII) 模式:传输纯文件,如文本文件。
  • 二进制模式:二进制模式使我们能够传输二进制、图像或者任何非文本文件。

注意:在大多数 UNIX/Linux 发行版中,默认的传输模式是 ASCII。
因此,要传输二进制、图像或者任何非文本文件,我们必须键入 bin 命令以确保完整的数据传输。

使用二进制模式传输文件

下面的示例显示了如何传输二进制文件。

$ ftp host2
Connected to host2.
220 host2 FTP server ready.
Name (host2:user2): user2
331 Password required for user2.
Password:
230 User user2 logged in.
Remote system type is UNIX.
ftp> get binary.file
200 PORT command successful.
150 Opening BINARY mode data connection for binary.file (19084 bytes).
226 Transfer complete.
local: binary.file remote: binary.file
19084 bytes received in 0.0044 seconds (4212064 Kbytes/s)
日期:2020-09-17 00:13:57 来源:oir作者:oir