Doppelte Dateien finden und durch symbolische Links ersetzen
Doppelte Dateien finden und durch symbolische Links ersetzen
Hallo,
beim Backup macht rsnapshot ja aus doppelten Dateien sehr brav symbolische Links - gibt es ein Tool für Debian auf der Konsole was das auch einfach so macht?
Bei mir liegen in mehreren Ordnern größtenteils immer wieder die gleichen Dateien, da würde ich gerne durch symbolische Links Speicherplatz sparen.
Vielen Dank
beim Backup macht rsnapshot ja aus doppelten Dateien sehr brav symbolische Links - gibt es ein Tool für Debian auf der Konsole was das auch einfach so macht?
Bei mir liegen in mehreren Ordnern größtenteils immer wieder die gleichen Dateien, da würde ich gerne durch symbolische Links Speicherplatz sparen.
Vielen Dank
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Wenn man wirklich doppelte Dateien finden will dann reicht nicht der Name sondern dann müßte man die MD5 Prüsummen vergleichen.
Code: Alles auswählen
#!/bin/bash
# Für jede Datei die Prüfsumme berechnen und in einer temporären
# Datei speichern
find -exec md5sum {} \; > /tmp/sum.unsorted
# Die Prüfsummen sortieren
sort < /tmp/sum.unsorted > /tmp/sum.sorted
# Alle Doppelten Summen finden und speichern
cut -f 1 -d " " /tmp/sum.sorted | uniq -d > /tmp/sum.dupe
# Die Dateinamen zu den Doppelten Summen finden und ausgeben
grep -F -f /tmp/sum.dupe /tmp/sum.sorted
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
Ich mach so was immer mit einer Kombination aus fdupes und einer while Schleife.
Zum Beispiel (solltest du entsprechend auf deine Bedürfnisse anpassen):
Zum Beispiel (solltest du entsprechend auf deine Bedürfnisse anpassen):
Code: Alles auswählen
fdupes -r1 . > dupes
while read a b; do ln -sv "$a" "$b"; done < dupes
Re: Doppelte Dateien finden und durch symbolische Links ersetzen
Hallo,
die Idee finde ich gut - aber scheinbar ist noch ein Fehler in der Anweisung:
Ich erhalte immer die Ausgabe "No such file or directory" und vermute, dass liegt vor allem an den Leerzeichen in den File- und Verzeichnisnamen. Wie kann ich das noch escapen lassen?
Viele Grüße und Danke.
die Idee finde ich gut - aber scheinbar ist noch ein Fehler in der Anweisung:
Ich erhalte immer die Ausgabe "No such file or directory" und vermute, dass liegt vor allem an den Leerzeichen in den File- und Verzeichnisnamen. Wie kann ich das noch escapen lassen?
Viele Grüße und Danke.
Re: Doppelte Dateien finden und durch symbolische Links erse
Ich habe mich mal daran gemacht und das Problem via Python etwas umfangreicher gelöst. Mit drei kleinen Skripten ersetze ich doppelte Dateien auf meinem NAS durch harte Links! Ich hoffe das hilft dem einen oder anderen weiter: http://www.digitalchaot.de/python/doppe ... etzen.html
Re: Doppelte Dateien finden und durch symbolische Links erse
Ich würde nicht vermuten sondern die Fehlermeldung komplett posten.noname234 hat geschrieben:Ich erhalte immer die Ausgabe "No such file or directory" und vermute, dass liegt vor allem an den Leerzeichen in den File- und Verzeichnisnamen.
Re: Doppelte Dateien finden und durch symbolische Links erse
Immer diese Leichengräber
Tatsächlich habe ich meine ursprüngliche Idee inzwischen schon weiter entwickelt und das Ergebnis ist folgendes Script: 37361
Dieses kann auch mit Leerzeichen in den Dateinamen umgehen (das vorher wirklich ein Problem war) und akzeptiert zusätzlich noch folgende Parameter:
-n: no-act, es wird noch nichts gemacht, sondern nur das ausgegeben, was gemacht werden würde
-r: reverse, Links umgekehrt erstellen
Tatsächlich habe ich meine ursprüngliche Idee inzwischen schon weiter entwickelt und das Ergebnis ist folgendes Script: 37361
Dieses kann auch mit Leerzeichen in den Dateinamen umgehen (das vorher wirklich ein Problem war) und akzeptiert zusätzlich noch folgende Parameter:
-n: no-act, es wird noch nichts gemacht, sondern nur das ausgegeben, was gemacht werden würde
-r: reverse, Links umgekehrt erstellen
Re: Doppelte Dateien finden und durch symbolische Links erse
Vorneweg: Ihr Leichengraeber!1!!
Ich will euch ja nicht enttaeschen, aber es gibt bereits Programme dafuer, z.B. fdupes (siehe auch die "Aehnliche Pakete"-Liste dort). Das macht Hardlinks, was man vermutlich eher will. Softlinks werden von Anwendungen als solche erkannt und potenziell anders behandelt.
Gruss Cae
Ich will euch ja nicht enttaeschen, aber es gibt bereits Programme dafuer, z.B. fdupes (siehe auch die "Aehnliche Pakete"-Liste dort). Das macht Hardlinks, was man vermutlich eher will. Softlinks werden von Anwendungen als solche erkannt und potenziell anders behandelt.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Doppelte Dateien finden und durch symbolische Links erse
Hallo,
der Beitrag ist ja durchaus schon älter. Ich habe mich mittlerweile für Hardlinks entschieden und nutze:
#!/bin/sh
fdupes -r "$@" | tee /tmp/fdupes.out |
perl -ne '
chomp;
if (/./) { push @f, $_; }
else {
$k = shift @f;
for (@f) {
print "Linking $_ --> $k\n";
unlink $_;
link $k, $_;
}
@f = ();
}
'
der Beitrag ist ja durchaus schon älter. Ich habe mich mittlerweile für Hardlinks entschieden und nutze:
#!/bin/sh
fdupes -r "$@" | tee /tmp/fdupes.out |
perl -ne '
chomp;
if (/./) { push @f, $_; }
else {
$k = shift @f;
for (@f) {
print "Linking $_ --> $k\n";
unlink $_;
link $k, $_;
}
@f = ();
}
'
- striker2150
- Beiträge: 158
- Registriert: 23.07.2004 20:46:22
Re: Doppelte Dateien finden und durch symbolische Links erse
Der Link hier könnte vielleicht auch hilfreich sein:
http://it-fuzzy.blogspot.de/2010/08/che ... ouble.html
http://it-fuzzy.blogspot.de/2010/08/che ... ouble.html