Privacy Policy Cookie Policy Terms and Conditions Harter Link - Wikipedia

Harter Link

aus Wikipedia, der freien Enzyklopädie

Ein harter Link (engl. Hard link) ist ein Eintrag in einem Dateiverzeichnis bei einem Dateisystem (z. B. ext3). Die Dateien werden dort systemintern über die Nummer ihres Dateideskriptors, des Inode, identifiziert. Um Verzeichnisse zu verlinken siehe symbolische Links.

[Bearbeiten] Details

Jeder Verzeichniseintrag besteht aus dem Dateinamen und der zugeordneten Inode-Nummer. Zu jedem Inode kann es beliebig viele Dateipfade, also Verzeichniseinträge, geben. Somit sind Dateinamen nicht 1:1, sondern N:1, mit den Dateien assoziiert, der Name (Link) kann so quasi als Verweis auf die Datei (Inode+Datencluster) angesehen werden. Falls eine Datei mehrere Links hat, ist keine Unterscheidung zwischen dem zuerst vorhandenen und den später hinzugefügten Links möglich, die Links sind alle gleichwertig.

Die Auswirkungen dieses Konzepts sind beim Entfernen von Links gut erkennbar: Es gibt bei Unixsystemen streng genommen keine Operation zum Löschen einer Datei, sondern nur eine unlink-Operation zum Löschen von Links. Im Inode einer Datei wird die aktuelle Anzahl der Links gespeichert. Erst wenn der letzte Link zu einer Datei gelöscht wird, der Zähler im Inode also den Wert Null hat, wird die Datei selbst, also der Inode und die Datencluster, zur Wiederverwendung freigegeben und damit logisch gelöscht.

Bemerkenswert ist dieser Umstand insbesondere dann, wenn beispielsweise ein Benutzer eine Datei zu löschen versucht, die ein Programm noch geöffnet hält. Da das Öffnen einer Datei ebenfalls die (interne) Anzahl von Links erhöht, führt eine solche Aktion dann zu einem Verschwinden der Datei bzw. des Links, aber nicht zu einer Freigabe des Festplattenspeichers. Der dazugehörige Speicher wird erst dann freigegeben, wenn die Datei von allen Applikationen geschlossen wird. Diese Eigenschaft ist technisch notwendig auf unixähnlichen Betriebssystemen.

Um Konsistenzprobleme zu vermeiden, dürfen Benutzer für Verzeichnisse keine zusätzlichen Links erstellen. Stattdessen werden die Links auf einen Verzeichnis-Inode automatisch verwaltet: Der eindeutige eigentliche Verzeichnisname taucht als Link genau einmal im übergeordneten Verzeichnis auf. Daneben gibt es in dem Verzeichnis selbst einen Link namens "." und in allen untergeordneten Verzeichnissen je einen Link namens "..".

[Bearbeiten] Anwendungsbeispiel

Für sonstige Dateien lassen sich zusätzliche Links jederzeit erstellen, z. B. ein Link "/home/wiki/nullink" zum vorhandenen Gerät /dev/null:

> ln /dev/null /home/wiki/nullink

(Das Beispiel funktioniert nur, wenn sich /home/wiki zufällig im gleichen Dateisystem wie /dev/null befindet. In modernen Linux-Distributionen und grundsätzlich bei FreeBSD (ab Version 5) ist das jedoch niemals der Fall, da /dev dort ein Mountpoint eines speziellen Gerätedateisystems ist.)

Auch NTFS unterstützt mehrere Hard Links pro Datei. Beispiel: Um auf einer NTFS-formatierten Partition einen Hard Link namens "EinLink.pdf" zu erzeugen, der auf die Datei "EinDokument.pdf" verweist, geht man folgendermaßen vor:

fsutil hardlink create EinLink.pdf EinDokument.pdf

Anders als unter Unix, kann keiner der existierenden Hard Links gelöscht werden, solange eine Anwendung die referenzierte Datei geöffnet hat, d.h. einen File Handle darauf besitzt.

[Bearbeiten] Anmerkung

Die Verwendung von Zusatzlinks bei normalen Dateien ist eher selten, da heute als alternatives Konzept für mehrfache Verweise auf eine Datei symbolische Links verwendet werden können.

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -