File: find-duplicated-files.py

package info (click to toggle)
libreoffice 1:6.1.5-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,699,584 kB
  • sloc: cpp: 4,078,558; xml: 324,485; java: 281,935; python: 48,236; ansic: 36,476; perl: 32,383; sh: 13,671; yacc: 10,820; makefile: 9,085; cs: 6,600; lex: 2,184; objc: 1,904; awk: 978; pascal: 949; asm: 866; php: 79; csh: 20; sed: 5
file content (43 lines) | stat: -rwxr-xr-x 1,099 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env python3
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#

import os
import sys

from filecmp import dircmp

"""
This script compares two directories and lists the files which are the same in both directories.
Intended to find duplicate icons among icon themes.

Adopted from the example at https://docs.python.org/3.5/library/filecmp.html

Usage: ./bin/findduplicatefiles dir1 dir2
"""

def print_diff_files(dcmp):
    for name in dcmp.same_files:
        print("%s found in %s and %s" % (name, dcmp.left, dcmp.right))
    for sub_dcmp in dcmp.subdirs.values():
        print_diff_files(sub_dcmp)

if len(sys.argv) != 3:
    print("Usage: %s dir1 dir2" % sys.argv[0])
    exit()

dir1 = sys.argv[1]
dir2 = sys.argv[2]

if not os.path.isdir(dir1) or not os.path.isdir(dir2):
    print("Arguments must be directories!")
    exit()

dcmp = dircmp(dir1, dir2)
print_diff_files(dcmp)