Datei-Dupletten Finden

Joachim Lehmann - Dienstag, 12. Mai 2009 11:31:38 - 4 Antworten

Hallo,

ich suche ein Programm (am besten CLI), dass mir Datei-Dupletten
im System zeigt.

Dieses Tool sollte am besten nicht bloß nach dem Namen sondern nach dem Inhalt gehen.

Hintergrund ist, dass ich eine Medien-Sammlung bereinigen möchte.

Vielen Dank!

Antworten
Datei-Dupletten
Dieter (unangemeldet), Samstag, 16. Mai 2009 11:32:03
Ein/Ausklappen

Ich verwende hierzu das Programm samefile auf der Konsole.
Zu finden unter:
http://www.schweikhardt.net/samefile/

Anwendung mit pipe:
find | samefile
find | samefile > samedatei.txt

Eine andere Möglichkeit bietet md5sum mit find:
find -type f -printf "" -exec md5sum '{}' \;
und dann sortieren nach den md5-Summen. Somit hast Du nur noch ganz wenige Dateien zum ansehen ob diese doppelt sind.



Für Samefile habe ich mir noch einen Batchjob geschrieben zur Unterstützung:

#! /bin/sh
# how to use this:
# first step
# syntax: find /path/ | samefile > filelist.txt
# second step
# your inputfile will now be your created filelist.txt
# syntax: ./chosewhichdelete_samefile.sh inputfile outputfile
# recommendet outputfilemname samefiledeletebatch.sh
# third step
# syntax: ./samefiledeletebatch.sh

ic=1
IFS=$'\t\n'
echo "#! /bin/sh " > $2
for i in $(cat /home/dieterd/tools/samefile/"$1");
do
# echo "# count: " $ic
# put length of file into one variable
if [ $ic = 1 ] ; then
var1=$i
#echo "# " $var1
fi
# put first file name into a variable
if [ $ic = 2 ] ; then
var2=$i
#echo "# " $var2
fi
# put second file name into a variable
if [ $ic = 3 ] ; then
var3=$i
#echo "# " $var3
fi
#if [ $ic = 4 ] ; then
#var4=$i
#echo "# " $var4
#fi
#if [ $ic = 5 ] ; then
#var5=$i
#echo "# " $var5
#fi
#if [ $ic = 6 ] ; then
#var6=$i
#echo "# " $var6
#fi
# increment counter ic with one
ic=$(($ic+1))
# echo "# count: " $ic
# leave out other information
# at the end, ask which to delete

if [ $ic = 7 ] ; then

let m=0

while [ $m = 0 ]
do

echo "# 0: " $var1
echo "# 1: " $var2
echo "# 2: " $var3
ls -l $var2
ls -l $var3
# echo "# 3: " $var4
echo "# which to delete ? (1: first ; 2: second)"

# check if file exists
if [ -e $var2 ]
then
if [ -e $var3 ]
then
read a
else
a="0"
echo "file skipped because least one file is missing "
fi
else
a="0"
echo "file skipped because least one file is missing "
fi

# read a

if [ $a = "m" ] ; then
echo "mplayer file"
mplayer $var2
fi

if [ $a = "v" ] ; then
echo "xv file"
xv $var2
fi

if [ $a = "l1" ] ; then
echo "list dir"
ls $(dirname $var2)
fi

if [ $a = "l2" ] ; then
echo "list dir"
ls $(dirname $var3)
fi

if [ $a = "k1" ] ; then
echo "list dir"
konqueror $(dirname $var2)
fi

if [ $a = "k2" ] ; then
echo "list dir"
konqueror $(dirname $var3)
fi

if [ $a = "k" ] ; then
echo "list dir"
konqueror $(dirname $var2) $(dirname $var3)
fi

# with echo works only if the filename is the same
# if not you kill the file only in the second run
# better will be if you moved files to trash - write your own shell script

if [ $a = "0" ] ; then
echo "skipped these files "
# nothing - skip
let m=1
fi

if [ $a = "q" ] ; then
echo "programm was aborted by user wish "
exit
let m=1
# beenden
fi

if [ $a = "1" ] ; then
echo "rm " \'$var2\' >> $2
# echo "mv " \'$var2\' \'$var3\'
# echo "mv " \'$var2\' \'$var3\' >> $2
# echo "mv " \'$var3\' \'$var2\' >> $2
let m=1
fi

if [ $a = "2" ] ; then
echo "rm " \'$var3\' >> $2
# echo "mv " \'$var3\' \'$var2\'
# echo "mv " \'$var3\' \'$var2\' >> $2
# echo "mv " \'$var2\' \'$var3\' >> $2
let m=1
fi
ic=1

done

fi
done

# change attributes to enable *.sh to run as user
sudo chmod 777 $2



Bewertung: 275 Punkte bei 42 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Datei-Dupletten
Dieter (unangemeldet), Samstag, 16. Mai 2009 11:42:03
Ein/Ausklappen

Das Shellskript ist für KDE geschrieben. Für Gnome oder andere viewer mußt Du entsprechenden Konsolenbefehl in dem Skript ändern.

Der Vergleich mit den MD5 Summen hat einen Vorteil, dass Du dieses Ergebnis (und die vermutlichen Dupletten (der nachteil ist, du mußt die vermeintlichen Dubletten noch vergleichen)) auf einem Stick mitnehmen kannst, falls sich weitere Dateien auf einem anderen Rechner am anderen Ort befinden.


Bewertung: 246 Punkte bei 35 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
Re: Datei-Dupletten
Dieter (unangemeldet), Samstag, 16. Mai 2009 15:06:55
Ein/Ausklappen

find -type f -printf %s"\t"%TY%Tm%Td_%TH%TM"\t" -exec md5sum '{}' \; | sort -k 3 | uniq -D -f 2 -w 32

Bildet von allen Dateien die md5sum und gibt die Mehrfachen aus.




Bewertung: 271 Punkte bei 36 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
fdupes & dupseek
Erwin Eggenberger, Dienstag, 12. Mai 2009 21:47:57
Ein/Ausklappen

Hallo Joachim,

ich habe vor einer Weile mal fdupes und dupseek ausprobiert, beides CLI.
http://premium.caribe.net/~adrian2/fdupes.html
http://www.beautylabs.net/software/dupseek.html

Raten würde ich eher zu dupseek, denn fdupes hat bei mir bei sehr großen Mengen von Dateien kläglich versagt. Hat den ganzen Arbeitspeicher aufgebraucht, bis der OOM Killer eingegriffen hat.

Dupseek hatte damit keine Probleme. Zudem ist der verwendete Algorithmus ein bisschen schneller. Ich hatte aber den Eindruck, dass es Dateien größer als 4GB nicht mag und sich dann aufhängt. Nach verschieben der VirtualBox Images ist es dann aber problemlos durchgelaufen.

Grüße

Erwin


Bewertung: 247 Punkte bei 45 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Ähnliche Artikel

  • Neue Software
    Im Quartalsrhythmus erscheinen viele Programme in neuer Version. Eine Auswahl stellen wir regelmäßig vor, und auf der Heft-DVD finden Sie die passenden Pakete und Installationshinweise.
  • Musiksammlung verwalten mit Amarok
    Mit seiner großen Anzahl beeindruckender Funktionen rockt der intuitive Mediaplayer Amarok die Party und liefert zugleich den alltäglichen Soundtrack bei der Arbeit.
  • Access-Ersatz unter Linux
    Ohne großes Trara veröffentlichte Horst Knorr die Version 0.7.4 seines Datenbanktools Knoda. Doch das Release steckt voll neuer Features: Es bringt Bilder, neue Datenbank-Typen und den oft gewünschten Access-Import.
  • Dr. Linux
    Nur wenige Linux-Anwender sind schon so lange dabei, dass sie die Entwicklung von Großprojekten wie KDE von Anfang an mitverfolgen konnten. Diese wenigen entdecken leicht nach jedem Versionssprung die neuen Features. KDE-Neuankömmlinge haben es deutlich schwerer.
  • Software
    Im Quartalsrhythmus erscheinen viele Programme in neuer Version. Eine Auswahl stellen wir regelmäßig vor. Auf der Heft-DVD finden Sie die passenden Pakete und Installationshinweise.

Aktuelle Fragen

NOKIA N900 einziges Linux-Smartphone? Kein Support mehr
Wimpy *, 28.08.2016 11:09, 1 Antworten
Ich habe seit vielen Jahren ein Nokia N900 mit Maemo-Linux. Es funktioniert einwandfrei, aber ich...
Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...

Jetzt auf den Mailinglisten

[EasyLinux-Suse] Quake4 LEAP42.1
"101.30750@germanynet.de", 28.08.2016 23:54
Hallo weil wohl durch das Wort D***e der Thread vorzeitig beendet wurde, hier meine Frage noch mal. Ich w...
Re: [EasyLinux-Suse] Grub 2
Horst Schwarz, 28.08.2016 16:31
Hallo Matthias,vielen Dank für dein Mail mit diesem großartigen Vorschlag!! > Warum nicht Windows lassen...
Re: [EasyLinux-Suse] Grub 2
Matthias, 28.08.2016 13:09
Hallo Am Sonntag, 28. August 2016, 11:06:35 schrieb Horst Schwarz: > Hallo, > ich habe es noch nich...
Re: [EasyLinux-Suse] Doppelklick-in-Leap-42.1-funkt-nur-begrenzt
wmey, 27.08.2016 21:56
Am 2016-04-12 um 23:22 schrieb Heiko Ißleib: ... ... >> * habe ich da etwas veschlafen ? >>...
Re: [EasyLinux-Ubuntu] KMail und MDA
Steffen Weyh, 27.08.2016 17:10
Hallo Uwe und Liste Mailversand und Empfang erfolgt auf einem vermutlich gehosteten Server...