使用sftp命令上传文件夹方法
# 前言
sftp上传单个文件使用put,多个文件可使用mput,但是要上传整个文件夹,则比较复杂,需要使用多个命令组合,包括find、awk等。
# sftp上传文件夹
```
#!/bin/bash
sss=`find /ngs/ecv1/AppServer -type d -printf /app/AppServer/'%P\n'| awk '{if ($0 == "")next;print "mkdir " $0}'`
aaa=`find /ngs/ecv1/AppServer -type f -printf 'put %p %P \n'`
sftp webuser@12.97.18.1 <<EOF
type binary
prompt
$sss
cd /app
$aaa
quit
EOF
```
## 遗留问题
由于不同于ftp,sftp要输入密码。这个涉及到ssh等问题。暂时不考虑。
参考:
https://blog.****.net/wenshuangzhu/article/details/44061125