sftp 下载多文件
时间: 2025-01-04 19:36:11 浏览: 6
### 如何使用SFTP协议批量下载文件
为了实现通过SFTP协议批量下载文件,可以利用`lftp`工具或编写脚本来自动化这一过程。以下是两种常见方法:
#### 方法一:使用 `lftp`
`lftp` 是一款强大的命令行文件传输程序,支持多种协议,包括 FTP、HTTP 和 SFTP 等。对于批量操作非常方便。
```bash
#!/bin/bash
# 设置远程服务器信息
HOST="example.com"
USER="username"
PASSWD="password"
# 进入本地目标目录并创建它如果不存在的话
mkdir -p /path/to/local/directory && cd $_ || exit
# 使用 lftp 执行镜像同步命令
lftp -u "$USER,$PASSWD" sftp://$HOST << EOF
mirror -R /remote/path/ /local/path/
bye
EOF
```
此脚本会递归地将指定路径下的所有文件从远端复制到本地[^1]。
#### 方法二:基于OpenSSH的SFTP客户端批处理模式
当仅需获取特定多个文件而非整个目录时,可采用如下方式构建批处理指令列表,并借助 `-b` 参数调用这些命令来完成任务。
准备一个名为 `batchfile.txt` 的文本文件,内容如下所示:
```
lcd /path/to/local/dir # 切换至本地工作目录
cd /remote/path # 转向远程主机上的源位置
mget *.txt # 获取匹配模式的所有文件
quit # 结束会话
```
接着运行带有该批次文件作为参数的sftp命令:
```bash
sftp -b batchfile.txt user@hostname
```
这种方式允许更灵活的选择要转移的具体项目集合。
阅读全文