Frage

Ich weiß, dass es eine Bedingung für harte Links ist, die sie nicht überdielen können. Gilt dies für NFS -Halterungen? Würde ich angesichts der folgenden Verzeichnisstruktur einen harten Link im Verzeichnis A erstellen, der auf eine Datei in Verzeichnis B zeigt?

/root
    /A
    /B  <-NFS mount

Zum Beispiel möchte ich rennen ln /root/B/file.txt /root/A/linkedfile.txt

War es hilfreich?

Lösung

Nun, seitdem /B ist ein separates Dateisystem (ein montiertes NFS -Dateisystem) Sie können keine harte Verbindung zwischen ihm und nicht herstellen /A, weil sie sich nicht auf demselben Dateisystem befinden.

Es liegt daran, dass ein Hardlink keine Kopie des Daten Legen Sie nur eine Kopie der Zeiger Zu diesen Daten müssen sie sich im gleichen "Adressraum" befinden.

Andere Tipps

Es wäre eine gute Idee, zuerst genau zu verstehen, was ein harter Link ist.

Normalerweise zeigt ein Dateiname in einem Verzeichnis auf ein Unix -ähnliches System auf eine Inode -Nummer - im Wesentlichen eine Nummer für eine Datei. Ein "harter Link" erstellt nur einen weiteren Dateinamen mit derselben Inode -Nummer. Jetzt müssen Sie unterschiedliche Namen auf dieselbe nummerierte Datei hinweisen.

Beachten Sie jedoch, dass es nicht wirklich eine direkte Verbindung zwischen diesen beiden Namen gibt. Die Beziehung ist, dass Name1 und Name2 beide ihre Inode -Nummer auf 12756 festlegen - aber es gibt nichts, was Sie halten und sagen können: "Dieses Ding in meiner Hand ist die Verbindung zwischen zwei Dateien". Sie sind nur zwei Datenbankeinträge, die eine ID -Nummer teilen. Sie können eine Abfrage durchführen (langsam, da Sie jeden Dateieintrag im System durchgehen) für Dateinamen, die eine ID -Nummer teilen, aber das war's.

Es bedeutet also nicht, dass etwas einen "harten Zusammenhang zwischen zwei Dateisystemen" erstellt - da zwei Dateisysteme unterschiedliche Nummerierungsschemata haben (Inode 1234 auf System 1 und 1234 auf System Two, auf vollständig unterschiedliche Dateien) und das einzige, was Sie Ich muss speichern, ist ein Name+InodeNumber, es gibt nichts zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top