免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1382 | 回复: 3
打印 上一主题 下一主题

各位给我看看这个shell脚本吧 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-22 10:42 |只看该作者 |倒序浏览
vi dir.sh
#!/bin/sh
if [ $#  -ne 2 ] ; then
echo $0: TO diff two dirs using md5
echo USAGE: $0  dir1 dir2
exit 0
fi

function md5dir()
{
find $1 | while read f
do
if [ -f $f ] ; then
fmd5=`md5sum $f | awk '{print $1}'`
echo $ffmd5 >> $2
fi
done
}


function dfab()
{
cat $1| while read f
do
dira=`echo $1 | awk -F"." '{print $1}'`
dirb=`echo $2 | awk -F"." '{print $1}'`
nf=`echo $f | sed s/^$dira/$dirb/g `
fn=`echo $f| sed s/^$dira//g | awk  -F":" '{print $1}'`
grep $nf $2 >/dev/null 2>&1
if [ $? -eq 0 ] ;then
echo samefn>>$3
else
echo differfn>>$3
fi

done
}
suf=$$
md5dir $1 $1.md5.$sfu
md5dir $2 $2.md5.$suf
dfab $1.md5.$suf $2.md5.$suf md5.dif.$suf
dfab $2.md5.$suf $1.md5.$suf md5.dif.$suf
rm -f $1.md5.$suf $2.md5.$suf
sort -u md5.dif.$suf
rm -f md5.dif.$suf
该算法的功能要求如下:
a为一目录,b为a的备份目录
比较a和b目录下的文件数,文件的内容是否相同
我是这样运行的
./dir.sh /home/gcf /home/gcf2
系统说
./dir.sh : line 23 :/home/gcf :is a dirctory
./dir.sh : line 24 :/home/gcf2 :is a dirctory
./dir.sh : line 1: ///g :没有那个文件或目录
sed : -e 表达式 #1,字符 2:未终止的"$"命令
./dir.sh : line 26 :/home/gcf/test/data.f :9785645353
2432 没有那个文件或目录
differ
如果这样运行
./dir.sh /home/gcf/dir.sh  /home/gcf2/dir.sh
系统说
./dir.sh : line 1: ///g :没有那个文件或目录
sed : -e 表达式 #1,字符 2:未终止的"$"命令
./dir.sh : line 26 :/home/gcf/test/data.f :9785645353
2432 没有那个文件或目录
differ
帮我看看,怎么错了

论坛徽章:
0
2 [报告]
发表于 2007-03-22 10:49 |只看该作者
最好把注释放到程序里面去

论坛徽章:
0
3 [报告]
发表于 2007-03-22 11:42 |只看该作者

回复 1楼 chfguo 的帖子

md5dir $1 $1.md5.$sfu  --是手误吗?
md5dir $2 $2.md5.$suf

论坛徽章:
0
4 [报告]
发表于 2007-03-22 12:36 |只看该作者
md5dir $1 $1.md5.$sfu是打错了,是$suf改正之后调试是上面的结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP