说明:
上传目录为/home/zh/var。
代码如下:
复制代码 代码示例:
#!/bin/bash
#edit by www.jb200.com
sss=`find /home/zh/var -type d -printf '%Pn'|
linuxjishu/13830.html target=_blank class=infotextkey>awk '{if ($0 == "")next;print "mkdir " $0}'`
aaa=`find /home/zh/var -type f -printf 'put %p %P n'`
ftp -nv 127.0.0.1 <<EOF
user kabc kabc
type binary
prompt
$sss
$aaa
quit
EOF
实现思路:
1,初始化上传目录结构
2,初始化目录之后就可以直接使用put命令上传文件了
3,主要还是使用ftp自身的命令
4,格式化输出(可看作是FTP的宏命令)
5,保守的
重定向输入流
重点如下的二句:
1,sss=`find /home/zh/var -type d -printf '%Pn'| awk '{if ($0 == "")next;print "mkdir " $0}'`
使用find找出目录结构,然后格式化输出,最后就是添加到FTP初始化目录结构。
2,aaa=`find /home/zh/var -type f -printf 'put %p %P n'`
使用find找出非目录文件,然后格式化输出,最后就是在初始化目录之后可以直接使用put上传文件。
以下代码,可以方便设置上传目录 和 远程目录。供大家参考。
复制代码 代码示例:
#!/bin/bash
#edit by www.jb200.com
updir=/home/zh/var
todir=sk
sss=`find $updir -type d -printf $todir/'%Pn'| awk '{if ($0 == "")next;print "mkdir " $0}'`
aaa=`find $updir -type f -printf 'put %p %P n'`
ftp -nv 127.0.0.1 <<EOF
user kabc kabc
type binary
prompt
$sss
cd $todir
$aaa
quit
EOF