ftp的put mput并不支持上传多层级目录
shell脚本实现
#!/bin/bash
#ftp上传整个目录
#upload dir to remote ftp server
read -p "Input local dir: " updir #local dir
read -p "Input remote dir: " todir #remote dir
read -p "Input remote IP: " ip #remote IP
read -p "Input ftp username: " user #ftp username
read -p "Input password: " password #password
sss=`find $updir -type d -printf $todir/'%P\n'| awk '{if ($0 == "")next;print "mkdir " $0}'`
aaa=`find $updir -type f -printf 'put %p %P \n'`
ftp -nv $ip <<EOF
user $user $password
type binary
prompt
$sss
cd $todir
$aaa
quit
EOF
来自通过FTP方式上传文件夹(整个目录)_奔跑的小牛-CSDN博客_ftp 上传文件夹
下载:
wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/*
解释:
-nH:不创建以主机名命名的目录。
–cut-dirs:希望去掉原来的目录层数,从根目录开始计算。如果想完全保留FTP原有的目录结构,则不要加该参数。
-m:下载所有子目录并且保留目录结构。
–ftp-user:FTP用户名
–ftp-password:FTP密码
ftp://.../*:FTP主机地址。最后可以跟目录名来下载指定目录。
例子:wget -nH -m --ftp-user=tom --ftp-password=123456 ftp://192.168.19.1/tom/