菜鸟科技网

FTP命令如何传输整个文件夹?

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

FTP命令如何传输整个文件夹?-图1
(图片来源网络,侵删)

文件夹传输的完整流程

  1. 创建本地和远程目录结构
    登录后,首先在远程服务器创建对应目录,例如mkdir target_folder,若需多级目录,需逐级创建并切换目录,如mkdir sub_foldercd sub_folder,本地端可通过lcd命令切换本地工作目录,确保待传输文件所在路径正确。

  2. 传输文件与递归处理
    FTP的putget命令默认仅传输单个文件,因此需结合mput(多文件上传)和mget(多文件下载)命令,上传当前本地文件夹所有文件至远程当前目录,可使用mput *,但需注意通配符可能误匹配文件,建议先通过ls!ls(列出本地文件)确认文件列表。
    若需递归传输子文件夹,需手动重复创建目录、切换目录、传输文件的步骤,传输本地local_folder至远程remote_folder

    • 远程端:mkdir remote_foldercd remote_folder
    • 本地端:lcd local_folder
    • 传输文件:mput *
    • local_folder含子文件夹,需进入子文件夹后重复上述操作。
  3. 批量传输优化
    为避免逐级操作繁琐,可结合脚本(如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命令如何传输整个文件夹?-图2
    (图片来源网络,侵删)

常用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客户端支持regetreput命令续传,但需服务器支持。
  • 替代方案:对于频繁文件夹传输,建议使用支持递归传输的协议(如SFTP的scp -r或rsync),或图形化工具(如FileZilla)。

相关问答FAQs

Q1: FTP传输文件夹时如何避免逐级创建目录?
A1: 可通过FTP脚本结合mkdircd命令批量创建目录结构,在脚本中先使用mkdir dir1/dir2/dir3(需服务器支持多级目录创建),再通过cd dir1/dir2/dir3进入目标目录后执行mput *,若服务器不支持多级mkdir,需逐级创建并切换。

Q2: 为什么使用mput上传文件时提示“拒绝连接”?
A2: 通常因被动模式(PASV)未正确配置导致,尝试在FTP连接后输入passive命令切换为被动模式,或检查本地防火墙是否阻止了FTP数据端口(默认为20/21),若问题依旧,可联系服务器管理员确认FTP服务器是否允许被动模式连接。

FTP命令如何传输整个文件夹?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇