Speicherplatz sparen durch Deduplizieren

Wenn man im Firefox mehrere Webseiten einer Site „komplett“ (in einem dafür eigens angelegten Unterverzeichnis) speichert, legt er zusätzlich zu einer HTML-Datei pro Seite jeweils ein Verzeichnis mit den verlinkten Dateien an. Dadurch entstehen meist zahlreiche Kopien derselben JS- und CSS-Dateien, Hintergrund- oder Titelbilder usw. usf., die unnötig Platz beanspruchen. Wie kann man diese Daten platzsparender speichern?

Das Programm rdfind (das z.B. für Debian-Systeme als gleichnamiges Paket existiert) kann helfen: Man wechselt in das Verzeichnis, in dem die Downloads liegen, und ruft es zunächst im dry-run-Modus auf:

rdfind -dryrun true -makehardlinks true .

Wenn die Ausgabe plausibel erscheint, klopft man dreimal auf Holz und lässt es im Normalmodus laufen:

rdfind -makehardlinks true .

Es gibt einige Informationen über den Ablauf aus und teilt u.a. mit, wieviel Speicherplatz eingespart wurde, indem die Dateiduplikate durch Hardlinks ersetzt wurden. Das heißt, in jedem Seitenverzeichnis sind nach wie vor alle Dateien vorhanden, aber identische Dateien sind nur einmal im Dateisystem gespeichert, alle Kopien verweisen auf denselben Datenbereich. Löscht man später einzelne Verzeichnisse, so bleiben die Daten so lange erhalten, bis die letzte Referenz (der letzte Hardlink) gelöscht wurde – genau so, wie man es braucht.

Je nachdem, welches Backup-Tool man verwendet (hoffentlich überhaupt eines!), kann es sein, dass dieses die Hardlinks nicht berücksichtigt und die Dateien pro Link einmal auf das Backup-Medium kopiert. Dadurch kann sich der Speicherplatzbedarf der Backups unerwartet vergrößern. Falls das Tool selbst dedupliziert, dürfte dieser Effekt nicht auftreten.