ftp介绍
FTP 命令允许用户通过FTP(File Transfer Protocol)协议在本地计算机和远程服务器之间传输文件。
FTP 是一种在网络上交换文件的标准协议,是 ARPANet 的标准文件传输协议,ARPANet 网络就是现今 Internet 的前身。
使用 FTP 协议时,一方充当客户端,另一方充当服务器,客户端可以上传、下载、删除、重命名文件和目录,以及执行其他文件传输相关的操作。
语法
ftp (选项) (参数)
选项
-v:启用或禁用详细模式。在详细模式下,ftp命令会显示所有来自服务器的响应消息。默认情况下,该选项为开启状态。
-d:启用调试模式。该选项会显示所有FTP传输过程中发送和接收到的命令,有助于调试连接问题。
-n:禁止自动登录。默认情况下,ftp命令会在连接到远程服务器后尝试自动登录。使用该选项可以禁止该行为,通常与.netrc文件联合使用。
-g:禁用文件名通配符扩展。ftp命令默认会展开文件名中的通配符。使用该选项可以关闭这一行为。
-p:使用被动模式(PASV)进行数据连接。被动模式在客户端位于防火墙或NAT后面时非常有用。
⚠️ Windows 上使用 -s 选项指定script.txt脚本执行 ftp 命令。Linux 上可以使用重定向实现。
参数:
主机:指定要连接的FTP服务器的主机名或ip地址。
目录操作
命令 | 描述 |
---|---|
cd | 更改当前工作目录到指定目录 |
ls或dir | 列出当前目录下的内容 |
pwd | 显示当前目录的绝对路径 |
mkdir | 创建目录 |
rmdir | 删除一个目录 |
rename <old> <new> | 重命名一个目录 |
快速开始
使用匿名模式访问远程 FTP 服务器
ftp 会启动交互式命令行
连接成功后进入交互式会话.
查看所有命令,使用 help 或 ?
关闭 ftp 连接
文件操作
命令 | 描述 |
---|---|
get <remote> <local> | 下载一个文件到本地 |
mget | 下载多个文件到本地 |
put <local> <remote> | 上传一个文件到服务器 |
mput | 上传多个文件到服务器 |
delete <remote> | 删除一个文件 |
rename <old> <new> | 重命名一个文件 |
ftp常用命令
实例
以匿名登录为例,将下列脚本代码放入文件 script 中:
使用 ftp 命令执行脚本文件:
使用 ftp 下载文件:
使用 ftp 上传文件:
ftp状态码
FTP 状态码是 FTP 服务器用来向 FTP 客户端反馈命令执行结果的代码。每个状态码由三个数字组成,每个数字都有特定的含义。
第一个数字:
1xx: 表示正向的初步回复,表示服务器已经开始处理请求,但需要进一步的回复才能完成操作。
2xx: 表示正向的完成回复,表示服务器已经成功执行了请求。
3xx: 表示正向的中间回复,表示服务器已经接受了请求,但需要客户端提供更多信息才能完成操作。
4xx: 表示暂时的负向完成回复,表示服务器无法执行请求,但错误是暂时的,客户端可以重试。
5xx: 表示永久的负向完成回复,表示服务器无法执行请求,错误是永久性的,客户端无法重试。
第二个数字:
x0x: 表示语法错误,例如命令格式错误或参数错误。
x1x: 表示信息回复,例如系统状态或帮助信息。
x2x: 表示连接相关回复,例如控制连接或数据连接。
x3x: 表示认证和计费相关回复,例如登录过程或计费操作。
x4x: 表示未定义的回复。
x5x: 表示文件系统相关回复,例如文件传输或文件系统操作。
第三个数字:
第三个数字表示具体的错误代码,每个错误代码都有特定的含义。
一些常见的 FTP 状态码:
150: 文件状态正常,即将打开数据连接。
220: 服务已准备好,等待新用户连接。
226: 关闭数据连接,请求的文件操作成功。
230: 用户已登录,可以继续操作。
421: 服务不可用,关闭控制连接。
426: 连接已关闭,传输已中止。
500: 语法错误,命令无法识别。
530: 未登录,用户无法登录。
550: 请求的操作未执行,文件不可用。
553: 请求的操作未执行,文件不可用。 这意味着 FTP 服务器无法完成您请求的操作,通常是因为文件或目录不存在、没有权限访问、磁盘空间不足或其他原因导致的。
详见:
参考: