使用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