sftp 如何从服务器下载到本地,命令是什么?
用 SFTP 从服务器下载到本地:命令速查
SFTP 有两种常见用法:交互式(登录后用命令行操作)和非交互式(脚本/一行命令批量执行)。下面给出最实用的命令和示例。
快速示例(最常用)
# 连接服务器(默认端口 22)
sftp user@server.example.com
# 如果端口不是 22
sftp -P 2222 user@server.example.com
# 指定私钥
sftp -i ~/.ssh/id_rsa user@server.example.com
进入 sftp 提示符后:
# 查看远程/本地目录
sftp> pwd
sftp> lpwd
# 切换远程/本地目录
sftp> cd /remote/path
sftp> lcd /local/save/path
# 下载单个文件到当前本地目录
sftp> get file.txt
# 下载到指定本地路径(带文件名)
sftp> get /remote/path/file.txt /local/save/path/file.txt
# 递归下载目录
sftp> get -r dir_name
# 批量下载(通配符)
sftp> mget *.log
# 断点续传(续传到已存在的同名本地文件)
sftp> reget bigfile.iso
# 退出
sftp> bye
非交互式(脚本/一条命令执行)
适合自动化或一次性批量下载:
- 使用批处理文件:
# batch.txt 的内容
lcd /local/save/path
cd /remote/path
get -r reports
mget *.log
bye
执行:
sftp -P 2222 -i ~/.ssh/id_rsa -b batch.txt user@server.example.com
- 用“这里文档”一条命令完成:
sftp -P 2222 user@server.example.com <<'EOF'
lcd /local/save/path
cd /remote/path
get data.csv
bye
EOF
常用命令与参数速记
-
连接
sftp user@host:连接-P:端口(大写 P)-i:指定私钥- 其他 SSH 选项可用
-o传入,如-o StrictHostKeyChecking=no
-
下载
get:下载单个文件[local] get -r:递归下载目录mget:按通配符批量下载(如mget *.log)reget:断点续传(从已存在的本地文件大小处续传)[local] get -p ...:保留时间戳/权限(preserve attributes)- 提示:不需要先
cd,也可直接用完整路径:get /remote/a/b.txt /local/c/b.txt
-
本地与远程目录
pwd/lpwd:显示远程/本地当前目录cd/lcd:切换远程/本地目录ls/lls:列出远程/本地文件
-
退出
bye或quit
小贴士
-
如果只是单次拷贝,
scp会更简洁(但你问题是 sftp,这里仅作对比):scp -P 2222 user@server:/remote/path/file.txt /local/save/path/ -
权限/端口问题
- 连接失败先检查端口、防火墙以及账号权限。
- 首次连接提示“fingerprint/host key”,确认后会写入
~/.ssh/known_hosts。
-
Windows
- Windows 10+ 自带 OpenSSH 客户端,PowerShell/命令行里直接用同样的
sftp命令。 - 如果用 PuTTY 套件,可用
psftp,命令基本一致(open user@host→get ...)。
- Windows 10+ 自带 OpenSSH 客户端,PowerShell/命令行里直接用同样的
本文地址:https://www.yitenyun.com/1340.html
下一篇:记一次“丝滑”的服务器迁移







