Hallo,
die Frage nach Hardlinks (ln ohne -s) auf Verzeichnisse ist beantwortet:
es ist erlaubt, aber nur für Root. Das Problem dabei ist: man macht sich die Struktur des Dateisystems kaputt und man bekommt sie nur mit debug-tools für das jeweilige Dateisystem weg.
Um das mal etwas zu erläutern:
ich habe eine Platte /mnt und dort ein Verzeichnis /mnt/dir, in dem einige Dateien und ein Verzeichnis /mnt/dir/x liegen.
/mnt/dir ist eine inode (wie man bei Heiko in Heimatkunde lernen kann), nehmen wir mal an inode Nr. 5
/mnt/dir/x ist inode Nr. 8
Auf inode 5 hat diese Namen/Links: /mnt/dir /mnt/dir/. /mnt/dir/x/..
in jedem weiteren Unterverzeichnis von /mnt/dir wird es wieder ein .. geben, das auf inode 5 verweist.
Nehmen wir an, ich will /mnt/dir löschen: ich beseitige erst einmal alle Dateien und Verzeichnisse unterhalb von /mnt/dir (ok, meistens macht das rm -rf für mich)... jetzt existieren noch: /mnt/dir und /mnt/dir/. jetzt lösche ich /mnt/dir, der Kernel beseitigt automatisch auch /mnt/dir/. .
Jetzt habe ich aber gehört, dass Hardlinks auf Verzeichnisse möglich sind (nicht in Heimatkunde, sondern in Physik) und legen eine Link an, danach habe ich: /mnt/dir /mnt/dir2 /mnt/dir/. (/mnt/dir2/. ist das selbe, da es im selben Verzeichnis liegt) jetzt lösche ich /mnt/dir: ich entferne /mnt/dir, der Kern automatisch /mnt/dir/. Foul!! Es existiert zwar noch /mnt/dir2 aber kein /mnt/dir2/. mehr. Falls man Abitur macht wird man in Physik lernen, dass das eine Inkonsistenz ist, die man vermeiden sollte, weil nicht nur der Rechner dabei durcheinander kommt.
Übrigens sind mit Verzeichnis-Hard-Links noch viel schlimmere Szenarien möglich, die nicht mehr mit etwas grübeln und robusterem Kernel-Code auflösbar sind. z.B. Endlosschleifen [/mnt/dir/schleife] - jetzt stellt Euch mal einen mount auf /mnt/dir/schleife/dir/schleife/dir vor und versucht irgendwie dahinterzukommen, wie der Kern das effektiv anhand von inode-Nummern auflösen soll.... wer das Problem erkennt bekommt ein Bienchen in Heimatkunde, wer es löst bekommt das Abitur gratis. ;-)
Konrad