delete repeat files(删除重复文件)
2013-06-08shell查询并删除重复文件。
#!/bin/bash
#可以用openssl md5代替md5sum
#创建备份目录
if [ ! -e /opt/backup ];then
mkdir $BACKUP;
fi
#设定目录及文件变量
BACKUP=/opt/backup
SRC=/test
HASHFILE=/opt/backup/hashfile.txt
REPEATHASH=/opt/backup/repeathash.txt
#给所有文件生成hash
find $SRC -type f -exec md5sum {} \; > $HASHFILE
#查询重复的hash值
find $SRC -type f -exec md5sum {} \;|awk '{print $1}' |sort |uniq -c |awk '{if($1>1)print $2}' > $REPEATHASH
#查询hash有重复的文件并move到备份目录
for HASH1 in `cat $REPEATHASH`;do
mv `grep $HASH1 $HASHFILE |awk '{print $2}'` $BACKUP
done;
#end
分类:编程 | 标签: program |