Ich habe ein tägliches Rsync-Skript, das meine Daten auf einer externen Festplatte unter /mnt/X
(Stammverzeichnis der Festplatte) sichert. Ich verwende --link-dest
Hardlinks und vermeide so die Duplizierung von Daten. Ich muss alle meine täglichen Backups von /mnt/X
nach verschieben /mnt/X/backups
, ohne die Hardlinks zu verlieren. Später muss ich das Skript ändern, um im neuen Zielverzeichnis zu sichern, das ist, /mnt/X/backups
und im selben Verzeichnis nach Backups vom Vortag suchen.
Wie würden Sie mir vorschlagen, den Umzug durchzuführen?
Antwort1
Sie müssen nichts Besonderes tun. Einfach:
mv /mnt/X/* to /mnt/X/backups/
(Sie erhalten eine Fehlermeldung, dass Sie sich nicht backups
zu sich selbst bewegen können.)
Ein Hardlink ist im Grunde eine Inode-Nummer. Dateien, die fest verknüpft sind, haben dieselbe Inode-Nummer. Egal, wie Sie sie innerhalb desselben Dateisystems verschieben, die Inode-Nummer ändert sich nicht. Es sind also keine besonderen Maßnahmen erforderlich.
Probieren Sie es zunächst selbst mit einigen einfachen Dateien /tmp
aus:
/tmp $ mkdir aa
/tmp $ touch aa/f
/tmp $ ln aa/f aa/g
/tmp $ mkdir aa/new
/tmp $ mv aa/* aa/new
mv: cannot move 'aa/new' to a subdirectory of itself, 'aa/new/new'
/tmp $ ls -il aa/new/
13185910 -rw-r--r-- 2 0 Apr 11 13:32 f
13185910 -rw-r--r-- 2 0 Apr 11 13:32 g