在使用FTP命令传输文件夹时,用户需要掌握一系列基础和进阶命令,因为FTP协议本身不支持直接递归传输整个文件夹结构,需通过组合命令实现,需建立FTP连接,常用命令为open [服务器地址],随后输入用户名和密码进行登录,若需主动模式连接,可使用passive命令切换为被动模式(默认为被动模式,多数防火墙环境下更稳定),传输文件夹的核心思路是逐级创建目录、切换目录并传输文件,具体步骤如下:

文件夹传输的完整流程
-
创建本地和远程目录结构
登录后,首先在远程服务器创建对应目录,例如mkdir target_folder,若需多级目录,需逐级创建并切换目录,如mkdir sub_folder后cd sub_folder,本地端可通过lcd命令切换本地工作目录,确保待传输文件所在路径正确。 -
传输文件与递归处理
FTP的put和get命令默认仅传输单个文件,因此需结合mput(多文件上传)和mget(多文件下载)命令,上传当前本地文件夹所有文件至远程当前目录,可使用mput *,但需注意通配符可能误匹配文件,建议先通过ls和!ls(列出本地文件)确认文件列表。
若需递归传输子文件夹,需手动重复创建目录、切换目录、传输文件的步骤,传输本地local_folder至远程remote_folder:- 远程端:
mkdir remote_folder,cd remote_folder - 本地端:
lcd local_folder - 传输文件:
mput * - 若
local_folder含子文件夹,需进入子文件夹后重复上述操作。
- 远程端:
-
批量传输优化
为避免逐级操作繁琐,可结合脚本(如Windows批处理或Linux Shell)循环执行FTP命令,在脚本中写入:open ftp.example.com username password mkdir remote_folder cd remote_folder lcd local_folder mput * bye通过
ftp -s:script.txt执行脚本(Windows)或ftp < script.txt(Linux)。
(图片来源网络,侵删)
常用FTP命令参考表
| 命令 | 功能描述 | 示例 |
|---|---|---|
open |
连接FTP服务器 | open 192.168.1.1 |
user |
输入用户名 | user admin |
pass |
输入密码 | pass 123456 |
ls |
列出远程目录文件 | ls |
!ls |
列出本地目录文件 | !ls |
lcd |
切换本地工作目录 | lcd /path/to/local |
cd |
切换远程工作目录 | cd /path/to/remote |
mkdir |
创建远程目录 | mkdir new_folder |
put |
上传单个文件 | put file.txt |
get |
下载单个文件 | get file.txt |
mput |
批量上传文件(支持通配符) | mput *.txt |
mget |
批量下载文件 | mget *.jpg |
binary |
切换为二进制传输模式(推荐用于文件) | binary |
ascii |
切换为ASCII模式(适用于文本文件) | ascii |
prompt |
关闭交互式提示(批量传输时使用) | prompt off |
bye/quit |
退出FTP连接 | bye |
注意事项
- 传输模式:传输非文本文件(如图片、压缩包)前,务必使用
binary命令,避免文件损坏。 - 权限问题:确保登录用户对远程目录有读写权限,否则可能创建目录或上传失败。
- 中断续传:若传输中断,部分FTP客户端支持
reget和reput命令续传,但需服务器支持。 - 替代方案:对于频繁文件夹传输,建议使用支持递归传输的协议(如SFTP的
scp -r或rsync),或图形化工具(如FileZilla)。
相关问答FAQs
Q1: FTP传输文件夹时如何避免逐级创建目录?
A1: 可通过FTP脚本结合mkdir和cd命令批量创建目录结构,在脚本中先使用mkdir dir1/dir2/dir3(需服务器支持多级目录创建),再通过cd dir1/dir2/dir3进入目标目录后执行mput *,若服务器不支持多级mkdir,需逐级创建并切换。
Q2: 为什么使用mput上传文件时提示“拒绝连接”?
A2: 通常因被动模式(PASV)未正确配置导致,尝试在FTP连接后输入passive命令切换为被动模式,或检查本地防火墙是否阻止了FTP数据端口(默认为20/21),若问题依旧,可联系服务器管理员确认FTP服务器是否允许被动模式连接。

