可以,SFTP 本身是支持批量传输的,只是它不像 scp 那样“天然”适合一行命令传一堆文件,需要用一些方式来实现。下面按常见场景给你说明:
sftp 命令批量传输(交互 / 非交互)sftp user@host
sftp> put file1 file2 file3
sftp> mput *.log
put:单个或多个文件mput:批量上传(匹配通配符)下载同理:
sftp> mget *.log
⚠️ mput / mget 会逐个确认(可用 prompt 关掉):
sftp> prompt
使用 -b 批处理模式:
sftp -b batch.txt user@host
batch.txt 示例:
cd /remote/path
lcd /local/path
mput *.tar.gz
bye
适合 定时任务 / 自动化
scp 做“更简单”的批量传输(补充)如果你只是想批量传文件,不一定要 sftp:
scp file1 file2 file3 user@host:/path/
scp /data/*.log user@host:/backup/
✅ 简单、稳定、支持通配符
rsync over SSH(最推荐批量/增量)rsync -avz /local/path/ user@host:/remote/path/
优点:
sftp user@host "put *" 这种远程命令式批量rsync✅ SFTP 能批量传
✅ 用 mput / mget 或 -b 批处理
✅ 自动化优先用 sftp -b 或 rsync
如果你愿意,可以告诉我:
我可以直接帮你写脚本。