linux用. md5sum コマンド でmd5sum のファイルリストを作成し
同じ md5sum を持つファイルをぶわーっと書きだす。
import sys
import re
import itertools
#utility functions
def error():
print "usage: python finddup.py rootpath extension"
def splitline(line):
return re.match("([a-z0-9]+)[ ]+(.*)", line).groups()
#command line argument check
if len(sys.argv) == 3:
os.system(r'find %s -name "*.%s" -exec md5sum {} \; > dup.md5'
% (sys.argv[1], sys.argv[2]))
else:
print "reading existing dup.md5..."
error()
# open file
try:
files = map(splitline, open("dup.md5"))
except:
error()
sys.exit(1)
# find duplicates and print them
for f1, f2 in itertools.product(files, files):
md5sum1, path1 = f1
md5sum2, path2 = f2
if path1 == path2: continue
if md5sum1 == md5sum2:
print "duplicated:"
print " ", path1
print " ", path2
0 件のコメント:
コメントを投稿