das hat sich jetzt wie eine erleuchtung angefühlt 😂
@Lonaril4 жыл бұрын
Um die Logik zu verstehen, warum man für symbolische Links noch den Parameter -s angeben muss, muss man begriffen haben, wie Daten (ich meine bewusst Daten und nicht Dateien) auf einem Datenträger mit ext4 bspw. organsiert sind. Daten liegen als sogenanten Datenstrom vor, wo genau wird durch den Inode beschrieben. Damit man aber via Pfadangabe (wir erinnern uns, alles ist eine Datei) auf diesen Datenstrom zugreifen kann, bedarf es eines Verweises, welcher durch einen Hardlink erfolgt. Jede Datei hat also IMMER einen Hardlink irgendwo im Verzeichnisbaum, ansonsten würde eine Inkonsistenz vorliegen. Da dieser Link (Verweis) zu einem Inode "hart" (direkt) erfolgt, spricht man hier eben von einem Hardlink. Man kann aber weitere Hardlinks zu einem Inode anlegen und man kann auch den ursprünglichen Hardlink danach entfernen ... wer jetzt ein bißchen um die Ecke denkt kann jetzt vermutlich verstehen, wie mv (move) funktionieren könnte. Genau so! Auch Verzeichnisse haben mindestens einen Hardlinks "." und für jedes Unterverzeichnis in dessen kommt ein weiter Hardlink ".." in hinzu. Jedoch haben Hardlinks ein entscheidenes Problem, sie funktieren nur innerhalb einer Partition, weil diese nur auf den Inode zeigen und keinerlei Informationen zu einer Partition beinhalten. Daher musste eine "Zusatz" her, mit dem man partitionsübergreifende Links erzeugen kann, sogenannte symbolische Links. Dafür ist der "zusätzliche" Parameter "-s" erforderlich. Vereinfacht gesagt kann ein Softlink nur auf einen anderen Link zeigen, dabei ist es egal, ob dies ein Hardlink ist oder ein Softlink. In der Praxis ist dieser Softlink allerdings auch ein Hardlink, der auf ein Inode zeigt und dessen Datenstrom allerdings nur den Verweis (der eigentliche Softlink) auf einen anderen Link beinhaltet. Ein Softlink ist somit nichts anderes als aus der Windows-Welt die Verknüpfungen. Eigentlich erklärt deine Grafik diese Logik schon auf einfachste Weise, denn symbolische Links sind "zusätzliche" Dateien und für alles was man "zusätzlich" machen möchte, muss man "zusätzlich" Parameter angeben. (Der Anteil der Hardlinks liegt somit immer über den der Softlinks.)