From 9a0b263b7fc9d43e6acd16729ebfc2120ae501d6 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Wed, 22 Dec 2010 09:04:38 +0000 Subject: Add --remove option. --- dupfiles | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'dupfiles') diff --git a/dupfiles b/dupfiles index 8c06c3d..3d9e8db 100755 --- a/dupfiles +++ b/dupfiles @@ -197,6 +197,12 @@ def make_hardlinks(duplicates): os.link(canonical, pathname) +def remove_all_but_one(duplicates): + keep = duplicates.pop() + for pathname in duplicates: + os.remove(pathname) + + def report(duplicates): sys.stdout.write('\n'.join(duplicates)) sys.stdout.write('\n\n') @@ -208,6 +214,8 @@ def main(): help='hardlink duplicate files to each other') parser.add_option('--progress', action='store_true', help='report progress') + parser.add_option('--remove', action='store_true', + help='remove all but one copy of identical files') opts, args = parser.parse_args() @@ -218,6 +226,8 @@ def main(): for duplicates in dupfinder.duplicates(): if opts.make_hardlinks: make_hardlinks(duplicates) + elif opts.remove: + remove_all_but_one(duplicates) else: report(duplicates) -- cgit v1.2.1