You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求提供仅传输图片视频格式文件的FTP命令支持

实现指定格式文件的FTP递归传输(保留目录结构)

当然有办法搞定这个需求!原生FTP命令的功能确实比较受限,但我们可以借助更灵活的FTP客户端工具,比如lftp或者ncftp,它们支持递归传输和精准的文件过滤,完美匹配你的需求。下面是具体的实现方案:

推荐方案:使用lftp完成传输

lftp是一款功能强大的命令行FTP客户端,自带的mirror命令可以轻松实现反向同步(本地到远程)、目录结构保留和文件过滤。

具体命令

lftp -u 你的用户名,你的密码 ftp://你的远程服务器地址 << EOF
mirror --reverse --include='*.jpg' --include='*.png' --include='*.mpeg' --exclude='*' /本地根目录 /远程目标根目录
quit
EOF

参数解释

  • -u 用户名,密码:直接指定FTP的登录凭据,避免交互输入
  • --reverse:默认mirror是从远程同步到本地,加上这个参数就变成本地同步到远程
  • --include='*.格式':指定要包含的文件格式,这里我们添加jpg、png、mpeg三种
  • --exclude='*':排除所有未被include指定的文件,确保只有目标格式被传输
  • /本地根目录:你的本地文件的上级目录(也就是包含directory、directory2、directory3的那个目录)
  • /远程目标根目录:远程服务器上要存放这些目录结构的目标位置

举个例子,如果你的本地文件都在/home/me/my-files/下,远程要传到/ftp-storage/my-content/,命令就变成:

lftp -u john,123456 ftp://ftp.example.com << EOF
mirror --reverse --include='*.jpg' --include='*.png' --include='*.mpeg' --exclude='*' /home/me/my-files/ /ftp-storage/my-content/
quit
EOF

备选方案:使用ncftp完成传输

ncftp也是常用的FTP工具,它的ncftpput命令支持递归传输和通配符过滤:

具体命令

# 先确保bash开启globstar(支持**递归匹配子目录)
shopt -s globstar

ncftpput -R -u 你的用户名 -p 你的密码 你的远程服务器地址 /远程目标根目录 /本地根目录/*.{jpg,png,mpeg} /本地根目录/**/*.{jpg,png,mpeg}

参数解释

  • -R:开启递归传输,自动创建对应的远程目录结构
  • -u/-p:分别指定FTP的用户名和密码
  • *.{jpg,png,mpeg}:匹配根目录下的目标格式文件
  • **/*.{jpg,png,mpeg}:匹配所有子目录下的目标格式文件(需要globstar支持)

原生FTP脚本方案(不推荐,仅作参考)

如果必须使用原生ftp命令,需要结合find命令写一个简单脚本,手动处理目录创建和文件上传:

#!/bin/bash
# 配置参数
FTP_USER="你的用户名"
FTP_PASS="你的密码"
FTP_HOST="你的远程服务器地址"
LOCAL_DIR="/本地根目录"
REMOTE_DIR="/远程目标根目录"

# 找出所有符合格式的文件
find "$LOCAL_DIR" -type f \( -name "*.jpg" -o -name "*.png" -o -name "*.mpeg" \) | while read file; do
    # 计算文件相对本地根目录的路径
    rel_path="${file#$LOCAL_DIR/}"
    # 计算远程服务器上对应的目录
    remote_target_dir="$REMOTE_DIR/$(dirname "$rel_path")"
    
    # 连接FTP,创建目录并上传文件
    ftp -inv "$FTP_HOST" << EOF
user $FTP_USER $FTP_PASS
mkdir -p "$remote_target_dir"
cd "$remote_target_dir"
put "$file"
quit
EOF
done

这个方案的缺点是效率较低,因为每个文件都要建立一次FTP连接,适合文件数量不多的场景。


内容的提问来源于stack exchange,提问作者Kristián Stroka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:18:41