在Linux系统中,使用FTP命令上传文件夹是一个常见的需求,尤其在没有图形化界面的服务器环境中,FTP(File Transfer Protocol)是一种标准的网络协议,用于在客户端和服务器之间传输文件,虽然现代系统更推荐使用SFTP(基于SSH的安全文件传输)或SCP,但FTP因其简单性和广泛兼容性仍被使用,以下是详细的Linux FTP命令上传文件夹的操作步骤和注意事项。

准备工作
- 安装FTP客户端:大多数Linux系统默认已安装FTP客户端,可通过终端输入
ftp命令检查,若未安装,在基于Debian的系统(如Ubuntu)中使用sudo apt-get install ftp,在基于RHEL的系统(如CentOS)中使用sudo yum install ftp。 - 确认FTP服务器信息:确保你知道FTP服务器的IP地址、端口(默认为21)、用户名和密码,如果是匿名FTP,用户名通常为
anonymous,密码可为空或邮箱地址。
连接FTP服务器
在终端中输入以下命令连接FTP服务器:
ftp ftp.server.com
如果服务器使用非默认端口,可通过ftp ftp.server.com 2121(假设端口为2121)指定,连接成功后,系统会提示输入用户名和密码。
上传文件夹的两种方法
方法1:使用mput命令逐个上传文件
FTP本身不支持直接上传整个文件夹,但可以通过mput(multiple put)命令上传文件夹中的所有文件,步骤如下:
- 进入本地文件夹:在FTP客户端中使用
lcd命令切换到本地待上传文件夹的路径,lcd /path/to/local/folder
- 进入远程目标路径:使用
cd命令切换到FTP服务器上的目标目录,cd /path/to/remote/folder
- 上传所有文件:使用
mput *命令上传当前本地文件夹中的所有文件:mput *
系统会逐个提示确认每个文件的上传,输入
y确认,若需静默上传,可先执行prompt off关闭交互提示。
(图片来源网络,侵删)
方法2:通过压缩文件上传(推荐)
由于mput无法递归上传子文件夹,更高效的方法是先将本地文件夹压缩为.tar或.zip文件,上传后再解压,步骤如下:
- 压缩文件夹:在本地终端中使用
tar命令压缩文件夹,tar -czf folder.tar.gz /path/to/local/folder
- 上传压缩文件:连接FTP服务器后,使用
put命令上传压缩文件:put folder.tar.gz
- 解压文件:通过SSH登录服务器或使用FTP的命令执行远程解压(需服务器支持),
! tar -xzf folder.tar.gz
或直接在服务器端解压。
常用FTP命令参考
以下是上传过程中常用的FTP命令及其功能:
| 命令 | 功能说明 |
|---|---|
lcd |
切换本地工作目录 |
cd |
切换远程服务器目录 |
ls |
列出远程服务器文件 |
!ls |
列出本地文件 |
put |
上传单个文件 |
mput |
上传多个文件(支持通配符) |
get |
下载单个文件 |
mget |
下载多个文件 |
prompt |
开关交互提示(off可静默操作) |
binary |
设置二进制传输模式(推荐用于非文本文件) |
ascii |
设置ASCII传输模式(用于文本文件) |
bye |
退出FTP会话 |
注意事项
- 安全性:FTP传输数据未加密,可能被窃听,敏感文件建议使用SFTP或SCP。
- 权限问题:确保FTP用户对远程目标目录有写入权限。
- 大文件传输:对于大文件或文件夹,建议使用二进制模式(
binary)以避免文件损坏。 - 防火墙:若连接失败,检查本地或服务器的防火墙是否允许FTP端口(默认21)。
相关问答FAQs
问题1:如何解决FTP上传大文件时中断的问题?
解答:FTP传输中断可能是由于网络不稳定或服务器超时导致的,可通过以下方式解决:

- 使用二进制模式(
binary)确保文件完整性; - 压缩大文件为分卷压缩包(如
split命令),逐个上传后合并; - 改用支持断点续传的工具,如
lftp(安装命令:sudo apt install lftp),其mirror命令可直接同步文件夹并支持断点续传。
问题2:如何通过脚本实现自动化FTP上传文件夹?
解答:可以使用expect工具或编写Shell脚本结合FTP命令实现自动化,以下是一个简单示例:
#!/bin/bash ftp -n <<EOF open ftp.server.com user username password lcd /path/to/local/folder cd /path/to/remote/folder binary prompt off mput * bye EOF
将脚本保存为upload.sh,赋予执行权限(chmod +x upload.sh)后运行即可,注意替换username、password及路径为实际值。
