Hi,

weil ich so eine Funktionalität auch schon brauchte bevor ich von der
Existenz von fdupes wusste, hab ich mir ein Shellskript geschrieben.

Neulich ließ ich beide Programme über ein Verzeichnis laufen und war
erstaunt, dass meine Shell-Version schneller ist :-) (und es lag nicht
am Filesystem-Cache)

### aus meiner .bashrc ##############################################

# doppelte Dateien finden (md5sum)
# funktioniert wie folgender Befehl nur viel schneller:
# find . -type f -exec md5sum {} \; |sort|uniq -D --check-chars=32
finddoubles()
{
        if [ "$1" == "--help"  -o "$1" == "-h" ]
        then
                echo 'Usage: finddoubles DIR SIZE[ckMG]'
                echo 'find duplicate files (faster than fdupes).'
        else
                # kein Verz. angegeben -> nutze aktuelles
                if [ -z "$1" -a -z "$2" ]
                then
                        dir="."
                else
                        if [ -d "$1" ]
                        then
                                dir="$1"
                        else
                        echo "Verzeichnis $1 existiert nicht" 1>&2
                        fi

                fi
                # size arg is given
                size=''
                if [ ! -z "$2" ]
                then
                        size="-size +$2"
                fi

        # suche alle Dateien groesser als $size
        # sortiere nach Dateigroesse
        # waehle Dateien aus, die genauso gross sind wie min. eine andere Datei
        # mdsum alle Dateien
        # sortiere und geben die Dateien mit gleichen Summen aus.
                find "$dir" -type f $size -printf "%16s %p\n" |sort |\
uniq -D --check-chars=16 |sed 's/^ *[0-9][0-9]* //g' |\
while read i; do md5sum "$i"; done | sort |\
uniq --all-repeated=separate --check-chars=32 | awk '
                BEGIN {count=1;} {if ($1 == ""){count+=1;print $1;}else {$1="";
print count,$0;}}'

        fi
}

###############################################################

Vorteil: Man kann auch erst ab einer bestimmten Dateigröße suchen,
leicht zu Modifizieren, schnell

Nachteil: Hardlinks werden nicht erkannt


Viel Spaß beim Benutzen (gerne auch Feedback),
Georg



Attachment: signature.asc
Description: OpenPGP digital signature

-- 
Linux mailing list [email protected]
subscribe/unsubscribe: http://lug-owl.de/mailman/listinfo/linux
Hinweise zur Nutzung: http://www.lug-owl.de/Mailingliste/hints.epo

Antwort per Email an