delete repeat files(删除重复文件)

2013-06-08

shell查询并删除重复文件。

#!/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

分类:编程 | 标签: |

相关日志

评论被关闭!