Was ist der Unterschied zwischen einer symbolischen Verknüpfung und einem harten link?

StackOverflow https://stackoverflow.com/questions/185899

  •  06-07-2019
  •  | 
  •  

Frage

Kürzlich wurde ich gebeten, dies bei einem Vorstellungsgespräch.Ich war ehrlich und sagte, ich wusste, wie ich einen symbolischen link verhält und wie man erstellen, aber nicht verstehen, die Verwendung der hard-link und wie unterscheidet es sich von einer symbolischen Preis von einem.

War es hilfreich?

Lösung

Unter den Dateisystem-Dateien werden von Inodes dargestellt (oder ist es mehr Inodes nicht sicher)

Eine Datei im Dateisystem ist im Grunde ein Link zu einem Inode.
Ein harter Link erstellt dann nur ein andere Datei mit einem Link zu dem gleichen zugrunde liegenden Inode.

Wenn Sie eine Datei löschen, entfernt es einen Link auf die darunter liegende Inode. Die Inode wird nur dann gelöscht (oder löschbaren / über beschreibbare), wenn alle Links zu den Inode gelöscht wurden.

Ein symbolischer Link ist ein Link zu einem anderen Namen in dem Dateisystem.

Sobald eine feste Verknüpfung hergestellt wurde, ist der Link zu der Inode. Umbenennen oder Verschieben der Originaldatei gelöscht wird die feste Verbindung nicht beeinflussen, da sie auf die zugrunde liegende inode verbindet. Alle Änderungen an den Daten auf der Inode wird in allen Dateien reflektiert, die zu dieser Inode verweisen.

Hinweis: Harte Links sind nur gültig innerhalb des gleichen Dateisystem. Symbolische Links können Dateisysteme erstrecken, da sie einfach den Namen einer anderen Datei sind.

Andere Tipps

Einige nette Intuition, die jede Linux (ish) Konsole könnte helfen, mit.

Erstellen Sie zwei Dateien:

$ touch foo; touch bar

Geben Sie einige Daten in sie:

$ echo "Cat" > foo
$ echo "Dog" > bar

(Eigentlich hätte ich in erster Linie verwendet, Echo, da es die Dateien erstellt, wenn sie nicht existieren ... aber lassen wir das.)

Und wie erwartet:

$cat foo; cat bar
Cat
Dog

Lassen Sie sich erstellen harte und weiche Verbindungen:

$ ln foo foo-hard
$ ln -s bar bar-soft

Lassen Sie uns sehen, was gerade passiert ist:

$ ls -l

foo
foo-hard
bar
bar-soft -> bar

Ändern des Namens foo spielt keine Rolle:

$ mv foo foo-new
$ cat foo-hard
Cat

foo-Festpunkte auf der Inode, die Inhalte der Datei -., Die nicht geändert wurde

$ mv bar bar-new
$ ls bar-soft
bar-soft
$ cat bar-soft  
cat: bar-soft: No such file or directory

Der Inhalt der Datei nicht, weil die Soft-Link verweist auf den Namen gefunden werden kann, dass geändert wurde, und nicht auf den Inhalt.

Ebenso Wenn foo gelöscht wird, hält foo-hard immer noch den Inhalt; wenn bar gelöscht wird, bar-soft ist nur ein Link zu einer nicht vorhandenen Datei.

Wie das Sprichwort sagt, ein Bild sagt mehr als tausend Worte. Hier ist, wie ich es visualisieren:

eingeben Bild Beschreibung hier

Hier ist, wie bekommen wir zu diesem Bild:

  1. einen Namen myfile.txt im Dateisystem erstellen, die auf einen neuen inode Punkte (die die Metadaten für die Datei und zeigt auf die Datenblöcke enthält, die ihre Inhalte enthalten, dh der Text „Hallo, Welt!“:

    $ echo 'Hello, World!' > myfile.txt
    
  2. eine feste Verbindung my-hard-link in die Datei myfile.txt erstellen, das bedeutet „eine Datei erstellen, die auf den gleichen Inode anweisen, die Punkte myfile.txt auf“:

    $ ln myfile.txt my-hard-link
    
  3. einen Softlink my-soft-link in die Datei myfile.txt erstellen, das bedeutet „eine Datei erstellen, die auf die Datei myfile.txt anweisen“:

    $ ln -s myfile.txt my-soft-link
    

Schauen Sie, was jetzt passieren wird, wenn myfile.txt gelöscht (oder verschoben): my-hard-link noch verweist auf die gleichen Inhalte und ist somit nicht beeinflusst, während my-soft-link jetzt nichts hindeutet. Andere Antworten diskutieren die Vor / Nachteile der einzelnen.

Harte links sind nützlich, wenn die ursprüngliche Datei wird immer bewegt.Zum Beispiel, wenn eine Datei von /bin zu /usr/bin oder /usr/local/bin.Jedem symbolischen Link auf die Datei in /bin / würde gebrochen werden, aber ein hardlink, wird ein link direkt auf den inode der Datei, würde es nicht kümmern.

Hard links können nehmen weniger Speicherplatz, da Sie nur einen Verzeichnis-Eintrag, in der Erwägung, dass ein symlink braucht seine eigene inode-der name zeigt es auf.

Hard links auch weniger Zeit, Sie zu beheben - symlinks können andere symbolische Links, die in symlinked directories.Und einige von Ihnen könnten auf NFS oder andere high-latency-Datei-Systeme, und so könnte Ergebnis in Netzwerk-traffic zu beheben.Hard links, immer auf das gleiche Dateisystem, sind immer gelöst in einem einzigen look-up, und nie umfassen Netzwerk-Latenz (wenn es ist ein hardlink auf ein NFS-Dateisystem, NFS server würde die Auflösung, und es wäre unsichtbar für das client-system).Manchmal ist dies wichtig.Nicht für mich, aber ich kann mir vorstellen, high-performance Systeme, in denen dies wichtig sein könnte.

Ich denke auch, dass Dinge wie mmap(2) und sogar open(2) verwenden Sie die gleiche Funktionalität wie hardlinks zu halten, eine Datei inode aktiv, so dass, auch wenn die Datei ruft unlink(2)ed inode bleibt zu erlauben, dass der Prozess fortgesetzt Zugriff und nur einmal die Prozess schließt es die Datei wirklich Weg.Dies ermöglicht eine wesentlich sicherer temporäre Dateien (wenn man das öffnen und trennen geschehen, atomar, dass es möglicherweise eine POSIX-API für die ich mich nicht erinnern, dann haben Sie wirklich eine sichere temporäre Datei), wo Sie können Lesen/schreiben, Ihre Daten zu, ohne dass jemand auf ihn zugreifen.Nun, das war wahr, bevor Sie /proc gab jeder die Möglichkeit zu schauen, Ihre Datei-Deskriptoren, aber das ist eine andere Geschichte.

Apropos, ist das wiederherstellen einer Datei, die offen ist, in den Prozess Ein, aber nicht verlinkte auf das Datei-system dreht sich alles um die Verwendung von hardlinks zu erstellen Sie die inode-links, damit die Datei nicht zu gehen Weg, wenn der Prozess, der ihn zu öffnen, schließt es oder geht Weg.

Eine einfache Möglichkeit, den Unterschied zwischen einer harten Verbindung und einer symbolischen Verbindung ist durch ein einfaches Beispiel zu sehen. Ein harter Link auf eine Datei wird auf den Platz zeigen, wo die Datei gespeichert ist, oder die Inode der Datei. Ein symbolischer Link auf die eigentliche Datei verweisen wird selbst.

Wenn wir also eine Datei mit dem Namen "a" haben, und erstellen Sie eine feste Verbindung "b" und einen symbolischen Link "c", die alle auf "a" in Datei:

echo "111" > a
ln a b
ln -s a c

Die Ausgabe von "a", "b" und "c" wird sein:

cat a --> 111
cat b --> 111
cat c --> 111

Lassen Sie sich jetzt entfernen Datei „a“ und sieht, was mit dem Ausgang „a“ geschieht, „b“ und „c“:

rm a
cat a --> No such file or directory
cat b --> 111
cat c --> No such file or directory

Also, was ist passiert?

Weil Punkte Datei „c“ in Datei „eine“ selbst, wenn die Datei „a“ gelöscht wird dann „c“ Datei hat nichts zu zeigen, in der Tat ist es ebenfalls gelöscht.

Allerdings Datei „b“ zeigt auf den Ort der Lagerung oder den Inode, der Datei „a“. Also, wenn die Datei „a“ wird gelöscht, dann wird es nicht mehr auf die Inode, sondern weil Datei „b“ der Fall ist, wird die Inode auch weiterhin zu speichern, was Inhalt gehörte zu „a“ bis keine harten Links darauf zeigen mehr.

Soft-Link :

weich oder symbolisch ist eher ein kurzer Schnitt auf die Originaldatei .... wenn Sie das Original löschen die Verknüpfung schlägt fehl, und wenn Sie die Abkürzung nichts zum Original geschieht löschen.

Soft Link Syntax : ln -s Pathof_Target_file link

Ausgang: link -> ./Target_file

Beweis: readlink link Auch in ls -l link Ausgabe werden Sie die ersten Buchstaben in lrwxrwxrwx als l sehen, welche Anzeichen dafür, dass die Datei ein Soft-Link ist.

Löschen der Link: unlink link

Hinweis: Wenn Sie möchten, können Sie Ihre Softlink arbeiten, auch wenn er woanders aus dem aktuellen Verzeichnis zu bewegen. Stellen Sie sicher, dass Sie absoluten Pfad geben und nicht relativen Pfad während eines Soft-Link zu schaffen. d (ab / root / user / target_file und nicht ./Target_file)

Hard-Link:

Hard Link mehr eine gespiegelte Kopie oder mehrere Pfade zu der gleichen Datei. Tun Sie etwas Datei1 und es erscheint in der Datei 2. Löschen hält man noch die andere in Ordnung.

Die Inode (oder Datei) wird nur dann gelöscht, wenn alle (hart) Links oder alle Wege in die (gleiche Datei) Inode gelöscht wurde.

Sobald ein harter den Link gemacht wurde, hat die Inode der Originaldatei. Umbenennen oder Verschieben der Originaldatei löschen, wird die feste Verbindung nicht beeinflussen, da sie auf die zugrunde liegende inode verbindet. Alle Änderungen an den Daten auf der Inode wird in allen Dateien reflektiert, die zu dieser Inode verweisen.

Hard Link-Syntax : ln Target_file link

Ausgabe:. Eine Datei mit dem Namen Link wird mit der gleichen Inode-Nummer wie der Zieldatei erstellt wird

Beweis: ls -i link Target_file (überprüfen ihre Inodes)

Löschen der Link: rm -f link (Löschen Sie den Link wie eine normale Datei)

Hinweis : Symbolische Links können Dateisysteme erstrecken, da sie einfach den Namen einer anderen Datei sind. Während harte Links sind nur gültig innerhalb des gleichen Dateisystem.

Symbolische Links haben einige Features harte Links fehlen:

  • Hard Link Punkt zum Dateiinhalt. während Soft-Link verweist auf die Dateinamen.
  • , während Größe des Fest Link die Größe des Inhalts, während Soft-Link ist mit dem Dateinamen Größe.
  • Hard-Links teilen sich die gleiche Inode. Softlinks nicht.
  • Hard-Links können nicht Querdateisysteme. Softlinks tun.
  • Sie wissen sofort, wo eine symbolische Verbindung zeigt, während sie mit harten Links, müssen Sie das gesamte Dateisystem erkunden Dateien zu finden die gleiche Inode teilen.

    # find / -inum 517333

    /home/bobbin/sync.sh
    /root/synchro
    
  • hard-Links können nicht auf Verzeichnisse verweisen.

Die harten Links haben zwei Einschränkungen:

  • Die Verzeichnisse können nicht hart verknüpft werden. Linux dies nicht erlauben, die azyklische Baumstruktur der Verzeichnisse zu erhalten.
  • Ein harter Link kann nicht über Dateisysteme erstellt werden. Sowohl die Dateien auf den gleichen Dateisysteme sein müssen, weil verschiedene Dateisysteme verschiedene unabhängige Inode-Tabellen (zwei Dateien auf verschiedenen Dateisystemen, aber mit dem gleichen Inode-Nummer wird anders sein).

Symbolische Links verlinken auf einen Pfadnamen. Dies kann an beliebiger Stelle im System der Dateibaum sein, und nicht einmal existieren müssen, wenn die Verbindung erstellt wird. Der Zielpfad relativ oder absolut sein kann.

Hard-Links sind zusätzliche Hinweise auf einen Inode, das heißt, sie nur auf dem gleichen Volumen wie das Ziel bestehen kann. Weitere harte Links zu einer Datei sind nicht zu unterscheiden von dem „ursprünglichen“ Namen verwendet, um eine Datei zu verweisen.

Ich möchte Sie auf Wikipedia zeigen:

Ein paar Punkte:

  • Symlinks, im Gegensatz zu harten Links können Dateisysteme überqueren (die meiste Zeit).
  • Symlinks können auf Verzeichnisse verweisen.
  • Punkt Harte Links zu einer Datei und ermöglicht es Ihnen, mit mehr als einem Namen auf die gleiche Datei zu verweisen.
  • Solange es mindestens eine Verbindung ist, sind die Daten noch verfügbar sind.

Hard-Links sind sehr nützlich, wenn inkrementelle Backups zu tun. Siehe rsnapshot , zum Beispiel. Die Idee ist, Kopie mit harten Links zu tun:

  • Kopie Backup-Nummer n auf n + 1
  • copy backup n - 1 bis n
  • ...
  • Backup-Kopie 0 bis Sicherung 1
  • Update-Backup 0 mit allen geänderten Dateien.

Die neue Backup nimmt keinen zusätzlichen Platz abgesehen von etwaigen Änderungen, die Sie vorgenommen haben, da alle inkrementellen Backups auf den gleichen Satz von Inodes für Dateien zeigen werden, die sie nicht verändert hat.

ich hinzufügen, auf Nicks Frage: Wann sind harte Links nützlich oder notwendig? Die einzige Anwendung, die mir in den Sinn kommt, in denen symbolischen Links würde den Job nicht machen, ist eine Kopie einer Systemdatei in einer chroot-Umgebung bereitstellt.

Hard Link Vs Soft-Link kann dieses Bild leicht erklärt werden.

Auch:

  1. Lesen Sie die Leistung der harten Links ist besser als symbolische Links (Mikro-Performance)
  2. kann Symbolische Links werden kopiert, Versionskontrolle, .etc. In anderen Worten, sie sind eine tatsächliche Datei. Am anderen Ende ist ein harter Link etwas auf einem etwas niedrigeren Niveau, und Sie werden feststellen, dass im Vergleich zu symbolischen Links, gibt es weniger Werkzeuge, die Mittel für die Arbeit mit den harten Links als harte Links und nicht als normale Dateien
  3. liefern

Was Sie denken als eine gewöhnliche „Datei“ sind eigentlich zwei verschiedene Dinge: Die Daten einer Datei und ein Verzeichniseintrag. Wenn Sie eine feste Verknüpfung für eine Datei zu erstellen, erstellen Sie eigentlich einen zweiten Verzeichniseintrag, der auf die gleichen Daten bezieht. Beiden Verzeichniseinträge haben genau die gleiche Funktionalität; jeder kann verwendet werden, um die Datei zu öffnen, es zu lesen. So müssen Sie nicht wirklich „um eine Datei sowie eine feste Verbindung“, Sie „Dateidaten mit zwei Verzeichniseinträge“ haben. Was Sie denken, als eine Datei tatsächlich löschen löscht einen Verzeichniseintrag, und wenn der letzte Verzeichniseintrag für die Daten gelöscht wird, dann wird die Daten selbst als auch gelöscht. Für gewöhnliche Dateien, die nur ein Verzeichniseintrag, den Verzeichniseintrag löschen, werden die Daten als immer löschen. (Wenn eine Datei geöffnet wird, das Betriebssystem erstellt einen temporären Link auf die Datei, so dass selbst wenn Sie alle Verzeichniseinträge löschen, die Daten bleiben aber verschwindet, sobald Sie die Datei schließen).

Als Beispiel erstellen Sie eine Datei A.txt, eine feste Verbindung B.txt und A.txt löschen. Wenn Sie A.txt erstellt wurden einige Daten erstellt, und ein Verzeichniseintrag A.txt. Wenn Sie den Fest Link erstellt, B.txt einer anderer Verzeichniseintrag erstellt wurde, auf die exakt gleichen Daten zeigen. Wenn Sie A.txt löschen, haben Sie immer noch alle Daten, und einen einzelnen Verzeichniseintrag B.txt, genau so, wie wenn Sie eine Datei B.txt in erster Linie schaffen hatte.

Ein Soft-Link ist nur eine (fast) normale Datei, mit der Ausnahme, dass es keine Daten enthält, aber der Weg eines anderen Verzeichniseintrags. Wenn Sie die Datei löschen, die Soft-Link bezieht sich auf, dann wird der Soft-Link einen Pfad enthalten, die mehr zu einem Verzeichniseintrag verweist nicht; Es ist kaputt. Wenn Sie den Soft-Link löschen, es ist wie jede andere Datei löschen, wird die Datei, um es Punkte ist nicht betroffen.

MSDN ,

Symbolic Link

  

Ein symbolischer Link ist ein Dateisystem-Objekt, das in ein anderes Dateisystemobjekt verweist. Die Aufgabe wird deutete auf wird das Ziel genannt.

     

Symbolische Links an Benutzer transparent sind; die Links erscheinen als normal   Dateien oder Verzeichnisse und können auf vom Benutzer oder Anwendung gehandelt werden   in genau der gleichen Weise.

     

Symbolische Links konzipiert sind in der Migration und Anwendung unterstützen   Kompatibilität mit UNIX-Betriebssystemen. Microsoft implementiert   seine symbolischen Links wie UNIX-Links funktionieren zu können.

     

Symbolische Links können entweder absolute oder relative Links sein. Absolut   Links sind Links, die jeden Abschnitt des Pfadnamen angeben; relativ   Verbindungen bestimmt werden relativ zu dem Relativ-link Spezifizierer sind in   ein angegebener Pfad

Ein Beispiel für absolute symbolische Verknüpfung

X: "C:\alpha\beta\absLink\gamma\file"
Link: "absLink" maps to "\\machineB\share"
Modified Path: "\\machineB\share\gamma\file"

Ein Beispiel Relative symbolischer Links

X: C:\alpha\beta\link\gamma\file
Link: "link" maps to "..\..\theta"
Modified Path: "C:\alpha\beta\..\..\theta\gamma\file"
Final Path: "C:\theta\gamma\file"

Fest Link

  

A hard link ist das Dateisystem Darstellung einer Datei, durch die   mehr als ein Weg, eine einzelne Datei im gleichen Volumen verweist .

Um eine feste Verbindung in Windows zu erstellen, navigieren Sie zu dem Link, um diesen Befehl zu erstellenden und geben Sie ein:

mklink /H Link_name target_path

Beachten Sie, dass jede Bestellung harte Links löschen können, unabhängig von der Reihenfolge, in der sie erstellt wurden. Auch können Hardlinks nicht erstellt werden, wenn

  • Referenzen sind in verschiedenen lokalen Laufwerken
  • Referenzen zählen Netzlaufwerk. Mit anderen Worten, eine der Referenzen ist ein Netzlaufwerk
  • Hardlink zu im gleichen Pfad wie das Ziel erstellt ist

Junction

NTFS unterstützt einen anderen Link-Typ namens Kreuzung. MSDN definiert sie wie folgt:

  

Eine Verbindung (auch ein Soft-Link genannt) unterscheidet sich von einer harten Verbindung, dass die Speicherobjekte es Referenzen sind separate Verzeichnisse und ein Übergang kann Verzeichnisse Link befindet sich auf verschiedenen lokalen Volumes auf demselben Computer . Ansonsten Kreuzungen arbeiten identisch zu harten Links.

Die fett gedruckten Teile in harten Streckenabschnitt und Verbindungsabschnitt zeigen den prinzipiellen Unterschied zwischen den beiden.

Befehl einen Übergang in den Fenstern zu erstellen, navigieren Sie zu dem Link erstellt werden soll, und geben Sie dann:

mklink /J link_name target_path

Einfach, Link Hard: nur neue Namen in eine Datei hinzufügen, das ist gemein, eine Datei viele Namen in der gleichen Zeit haben, alle Namen einander gleich sind, niemand bevorzugt, harte Links bedeutet nicht kopieren die alle Inhalte der Datei und neue Datei zu machen ist nicht, dass es nur einen anderen Namen bekannt schaffen ..

Symbolic Link (Symlink): ist ein Dateizeiger auf eine andere Datei, wenn der symbolische Link verweist auf eine vorhandene Datei, die später gelöscht wird, die symbolische Verknüpfung mit dem gleichen Dateinamen Punkt weiter, auch wenn der Name nicht mehr Namen alle Datei.

Ein Verzeichniseintrag ist ein structrue Link:

struct dentry{
    ino_t ino;
    char  name[256];
}

die ino ist die Anzahl der Inode, wird der Name der Dateiname, Inode-Struktur vielleicht wie:

struct inode{
      link_t nlink; 
      ...
}

zum Beispiel creat Sie eine Datei / 1, der Verzeichniseintrag vielleicht wie:

struct dentry{
     ino_t ino; /* such as 15 */
     char  name[256]; /* "1" */
} 

die Inode-Struktur vielleicht wie:

   struct inode{ /* inode number 15 */
         link_t nlink; /* nlink = 1 */
         ...
    }

Dann erstellen Sie eine feste Verbindung (kann / 100 sein), der Verzeichniseintrag vielleicht wie:

  struct dentry{
     ino_t ino; /* 15 */
     char  name[256]; /* 100 */
  }

die Inode-Struktur vielleicht wie:

   struct inode{ /* inode numebr 15 */
         link_t nlink; /* nlink = 2 */
         ...
    }

Dann erstellen Sie einen symbolischen Link (möglicherweise / 200) 1 einzureichen, der Verzeichniseintrag vielleicht wie:

  struct dentry{
        ino_t ino; /* such as 16 */
        char  name[256]; /* "200" */
  }

die Inode-Struktur vielleicht wie:

   struct inode{ /* inode number 15 */ 
         link_t nlink; /* nlink = 2 */
         ...
    }

   struct inode{ /* inode number 16 */
         link_t nlink; /* nlink = 1 */
         ...
    } /* the data of inode 16 maybe /1 or 1 */

die oben genannten Antworten auf alle Hinzufügen, der Unterschied in der Hardlink und Softlink-Datei zu finden, kann wie folgt verstanden werden:

Ich habe eine Datei f6 in meinem aktuellen Verzeichnis sowie ein Verzeichnis namens t2.

Datei namens f1 und ./t2/f2 sind symbolische Links zu f6.

Datei namens f7 und ./t2/f8 sind harte Links f6.

Um weiche als auch harte Link finden wir verwenden können:

$ find -L . -samefile f6 

> ./f1
> ./f6
> ./f7
> ./t2/f2
> ./t2/f8

nur zu finden, können wir verwenden Hardlink:

$ find . -xdev -samefile f6

> ./f6
> ./f7
> ./t2/f8

Da Hardlinks können auf demselben Dateisystem erstellt werden, wir verwendet, um alle Hardlinks ohne -L Option suchen (mit -xdev Option) in dem gleichen Datei-System / mount-Punkt. Es speichert die unnötige Suche in verschiedenen Bereitstellungspunkte.

So sucht der Hardlink ist etwas schneller als die Softlinks Suche (Bitte korrigieren, wenn ich falsch bin oder nicht klar).

Symbolische Links geben einen anderen Namen in eine Datei, in ähnlicher Weise wie harte Links. Aber eine Datei gelöscht werden kann, auch wenn es noch symbolische Links.

Ich habe gerade eine einfache Möglichkeit, feste Verbindungen in einem gemeinsamen Szenario zu verstehen, Software zu installieren.

Eines Tages habe ich eine Software heruntergeladen Downloads zum Ordner für die Installation. Nachdem ich sudo make install tat, wurden einige ausführbare Dateien auf lokalen Binärordner cped. Hier cp schafft hard link . Ich war mit der Software zufrieden, aber bald klar, dass Downloads ist kein guter Ort, auf lange Sicht. So mved ich die Software-Ordner Verzeichnis source. Nun, ich kann immer noch die Software nach wie vor, ohne sich Gedanken über alle Ziel Link Dinge, wie in Windows laufen. Diese Mittel hard link findet inode direkt und andere Dateien um.

in dieser Antwort, wenn ich eine Datei sage, meine ich die Stelle im Speicher

die alle Daten, die gespeichert wird, wird in einem Speicher gespeichert, um eine Datenstruktur namens I-Nodes mit jeder Inode eine inodenumber.The Inode-Nummer hat, wird verwendet, um den inode.All die harten Links zu einer Datei kann unterschiedliche Namen für den Zugriff aber die gleichen Anteil Inode number.Since all harten Links die gleichen inodenumber (die inturn die gleichen Inode Zugriff), um sie alle zu dem gleichen physischen Speicher verweisen.

Ein symbolischer Link ist eine besondere Art von file.Since es ist auch eine Datei, um sie einen Dateinamen haben und einen Inode number.As über der Inode-Nummer sagte acceses eine Inode, die data.Now Punkte, was einen symbolischen Link macht besondere ist, dass die inodenumbers in symbolischen Links jene Inodes zuzugreifen, die zeigen Sie auf „ein Weg“ zu einem anderen file.More speziell die Inode-Nummer in symbolischer Link jene Inodes acceses, die auf eine andere Fest Link verweisen.

, wenn wir das Verschieben, Kopieren, Löschen einer Datei in GUI wir mit den Hardlinks der Datei nicht die physische memory.when wir eine Datei löschen, spielen wir die Hardlink der Datei löschen. wir sind nicht die physische memory.If all auszulöschen Hardlinks werden gelöscht Datei dann wird es nicht möglich sein, die zu speichernden Daten zugreifen, obwohl es noch im Speicher vorhanden sein kann,

Mein zwei Cent auf Nutzung:

Soft Links verwendet werden können, lange Pfadnamen zu verkürzen, das heißt:.

ln -s /long/folder/name/on/long/path/file.txt /short/file.txt

Änderungen an /short/file.txt gemacht werden auf die Originaldatei angewendet werden.

Hard Links verwendet werden können, um große Dateien zu verschieben:

$ ls -lh /myapp/dev/
total 10G
-rw-r--r-- 2 root root 10G May 22 12:09 application.bin

ln /myapp/dev/application.bin /myapp/prd/application.bin

Instant Kopie zu anderen Ordnern, und Original-Datei (auf /myapp/dev) bewegt werden kann, oder gelöscht werden, ohne dass die Datei auf /myapp/prd zu berühren

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