在 Linux 下使用 SFTP(SSH File Transfer Protocol) 传文件,常见方式有以下几种:
sftp username@hostname
# 或指定端口
sftp -P 22 username@hostname
连接成功后,提示符会变成:
sftp>
put localfile.txt
上传到指定目录:
put localfile.txt /remote/path/
上传整个目录:
put -r localdir
get remotefile.txt
下载到指定目录:
get remotefile.txt /local/path/
下载整个目录:
get -r remotedir
ls # 查看远程目录
lls # 查看本地目录
cd # 切换远程目录
lcd # 切换本地目录
pwd # 远程当前路径
lpwd # 本地当前路径
exit # 退出
sftp username@hostname:/remote/path/ <<EOF
put localfile.txt
EOF
sftp username@hostname:/remote/path/ <<EOF
get remotefile.txt
EOF
如果你只是传文件,不一定要进 sftp
# 上传
scp file.txt user@host:/path/
# 下载
scp user@host:/path/file.txt ./
# 传目录
scp -r dir user@host:/path/
sftp -i ~/.ssh/id_rsa user@host
sftp://user@host
如果你有具体场景(如脚本自动传文件、只能 SFTP 不能 SSH、限速等),可以告诉我,我给你更合适的方案。