在 Linux 下使用 SFTP 上传文件,常见有 交互式 和 命令行一次性 两种方式。下面按常用场景说明。
sftp user@remote_ip
示例:
sftp root@192.168.1.100
连接成功后会看到:
sftp>
put local_file
例如:
put test.txt
指定远程文件名:
put test.txt /home/user/test.txt
mput *.txt
put -r local_dir
示例:
put -r ./mydir
✅ 有些旧版本 sftp 不支持
-r,可用lftp或scp
cd /remote/path
查看远程目录:
ls
exit
sftp + stdinecho "put test.txt" | sftp user@remote_ip
或多个命令:
sftp user@remote_ip <<EOF
cd /upload
put test.txt
bye
EOF
lftp(推荐,更稳定)lftp sftp://user@remote_ip -e "put test.txt; bye"
上传整个目录:
lftp sftp://user@remote_ip -e "mirror -R local_dir /remote_dir; bye"
scp(更简单,但不是 sftp)如果不需要 sftp 协议,可以直接用:
scp local_file user@remote_ip:/remote/path
上传目录:
scp -r local_dir user@remote_ip:/remote/path
sftp -P 2222 user@remote_ip
sftp -i ~/.ssh/id_rsa user@remote_ip
| 方式 | 适合场景 |
|---|---|
sftp 交互 |
手动操作 |
sftp + 脚本 |
自动化 |
lftp |
大目录/批量 |
scp |
简单快速 |
如果你愿意,可以告诉我:
我可以给你一条 完全可用的命令 ✅