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

Probleme mit MPC/MPD
Matthias Göhlen, 27.09.2016 13:39, 0 Antworten
Habe gerade mein erstes Raspi Projekt angefangen, typisches Einsteigerding: Vom Raspi 3B zum Radi...
Soundkarte wird erkannt, aber kein Ton
H A, 25.09.2016 01:37, 6 Antworten
Hallo, Ich weiß, dass es zu diesem Thema sehr oft Fragen gestellt wurden. Aber da ich ein Linu...
Scannen nur schwarz-weiß möglich
Werner Hahn, 20.09.2016 13:21, 2 Antworten
Canon Pixma MG5450S, Dell Latitude E6510, Betriebssyteme Ubuntu 16.04 und Windows 7. Der Canon-D...
Meteorit NB-7 startet nicht
Thomas Helbig, 13.09.2016 02:03, 4 Antworten
Verehrte Community Ich habe vor Kurzem einen Netbook-Oldie geschenkt bekommen. Beim Start ersch...
windows bootloader bei instalation gelöscht
markus Schneider, 12.09.2016 23:03, 1 Antworten
Hallo alle zusammen, ich habe neben meinem Windows 10 ein SL 7.2 Linux installiert und musste...

Jetzt auf den Mailinglisten

Re: [EasyLinux-Ubuntu] Bildbetrachtungsprogramm (KDE) mir Druckfunktion
Heiko, 28.09.2016 00:02
Am Dienstag, 27. September 2016, 01:46:26 CEST schrieb alfred: Hallo Michael,hallo Alfred > > >...
Re: [EasyLinux-Ubuntu] [gelöst]_Thunar
Gerhard Blaschke, 27.09.2016 21:16
Am 27.09.2016 um 19:37 schrieb Karl-Heinz: > Am Tue, 27 Sep 2016 08:48:37 +0200 > schrieb Gerhard Bla...
Re: [EasyLinux-Ubuntu] Thunar
Karl-Heinz, 27.09.2016 19:37
Am Tue, 27 Sep 2016 08:48:37 +0200 schrieb Gerhard Blaschke : Hallo Gerhard, doch das geht. Hier mal ein...
Re: [EasyLinux-Suse] Firefox
Heiko, 27.09.2016 15:46
Am Dienstag, 27. September 2016, 10:46:37 CEST schrieb Horst Schwarz: Hallo, > ich war gezwungen, im Firefo...
Re: [EasyLinux-Ubuntu] Thunar
Gerhard Blaschke, 27.09.2016 08:48
Am 27.09.2016 um 08:21 schrieb Uwe Herrmuth: > Hallo Gerhard, > > Gerhard schrieb am 26.09.2016...