Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29312660
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: LINUX

2010-06-27 21:12:03

有时候会好多,知道有的,但不知道是那些。下面的可以找出当前目录或指定目录下所有大小相等的文件,然后配合后面两个脚本比较二进制文件。

#!/bin/bash
#email:jyhln@163.com
#msn:jyhln@msn.com
#oicq:28995895
echo -n>/tmp/result_001.tmp
echo -n>/tmp/result.tmp
if [ $# -eq 0 ];then
dir_t=`pwd`
else
dir_t=`pwd $@`
fi
ls -Rlp -o --full-time $dir_t>/tmp/filelist_001.tmp
#create tmp file

flag=100

for line in `cat /tmp/filelist_001.tmp`;do
#path
if [ "`echo $line|grep ^/|grep :$`" ];then
flag=100
dir_swap=$line
continue
fi

#size
if [ "`echo $line|grep ^[-s][r-][-w][-x][-r]`" -a $flag -gt 10 ];then
flag=2
fi

flag=` expr $flag + 1 `
if [ $flag -eq 6 ];then
size=$line
continue
fi
#file
if [ $flag -eq 10 ];then
flag=100
echo -e $"$size \t$dir_swap\b/$line">>/tmp/result_001.tmp
#echo -e $"$size \t$dir_swap $line"
fi

done

#if have the same size

for byte in `cut /tmp/result_001.tmp -f 1`
do
counter=`grep -w ^"$byte" /tmp/result_001.tmp|wc -l`

if [ $counter -gt 1 ];then
test_n=`grep ^"$byte " /tmp/result.tmp`
if [ ! "$test_n" ];then
grep ^"$byte " /tmp/result_001.tmp>>/tmp/result.tmp
echo>>/tmp/result.tmp
fi

fi
done

cat /tmp/result.tmp
rm -f /tmp/result.tmp /tmp/filelist_001.tmp /tmp/result_001.tmp

 原文地址
阅读(706) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~