summaryrefslogtreecommitdiff
path: root/dupfiles
diff options
context:
space:
mode:
Diffstat (limited to 'dupfiles')
-rwxr-xr-xdupfiles10
1 files changed, 10 insertions, 0 deletions
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)