Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ln(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(1)

cp(1)

find(1)

ls(1)

mv(1)

pax(1)

rm(1)

link(2)

readlink(2)

stat(2)

symlink(2)

ln(1)                                                                 ln(1)

NAME
     ln - Verweis auf eine Datei eintragen (link)

SYNTAX
     ln [option] datei verweis                                     Format 1

     ln [option] datei ... verzeichnis                             Format 2

     ln -s [--] name verweis                                       Format 3

     ln -s [--] name ... verzeichnis                               Format 4

BESCHREIBUNG
     ln erzeugt Verweise auf vorhandene Dateien oder Verzeichnisse. Sie
     können dann auf diese Dateien bzw. Verzeichnisse mit verschiedenen
     Namen bzw. Pfadnamen zugreifen (siehe ARBEITSWEISE).

     Um mit ln einen Verweis zu erzeugen, benötigen Sie Schreibrecht für
     das Verzeichnis, in das der Verweis eingetragen werden soll.

     Es gibt zwei verschiedene Verweisarten:

     -  Der einfache Verweis (hard link):

        Wenn Sie einen einfachen Verweis auf eine Datei erzeugen, dann ist
        diese Datei als Eintrag mehrmals in einem Verzeichnis bzw. einmal
        oder mehrmals in verschiedenen Verzeichnissen vorhanden; physisch
        existiert diese Datei aber nur einmal. Der Indexeintrag jeder Datei
        enthält einen Verweiszähler; erst wenn alle Verweise auf eine Datei
        gelöscht sind, wird die Datei selbst gelöscht.

        Mit einem einfachen Verweis können Sie nicht auf Verzeichnisse oder
        Dateien in anderen Dateisystemen verweisen.

     -  Der symbolische Verweis (symbolic link):

        Ein symbolischer Verweis ist eine Datei, die einen Pfadnamen ent-
        hält. Wenn die Shell auf einen Dateinamen stößt, der zu einem sym-
        bolischen Verweis gehört, ersetzt sie diesen Namen durch den ange-
        gebenen Pfadnamen. Sie greifen also nicht auf den symbolischen Ver-
        weis zu, sondern auf die Datei, zu der der Pfadname führt. Symboli-
        sche Verweise können Sie auf beliebige Dateien oder Verzeichnisse
        über Dateisystemgrenzen hinaus einrichten.












Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

OPTIONEN
   Format 1: Einfachen Verweis eintragen

     ln [option] datei verweis

     ln erzeugt den Verweis verweis auf die Datei datei. Die Datei ist dann
     sowohl unter dem Namen datei als auch unter dem Namen verweis
     ansprechbar.

     Keine Option angegeben:
          Existiert bereits eine Datei mit dem Namen, den der zu erzeugende
          Verweis erhalten soll, dann gibt ln eine Fehlermeldung aus. Die
          existierende Datei wird nicht überschrieben.

          Dies entspricht der alten Option -n, die aus Kompatibilitätsgrün-
          den weiterhin unterstützt wird.

     -f   (f - force) Existiert bereits eine Datei mit dem Namen verweis,
          dann erzeugt ln den Verweis ohne Rückfrage. War verweis der ein-
          zige Verweis auf die ursprüngliche Datei, ist nach der Ausführung
          von ln der zugehörige Dateiinhalt gelöscht.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
          beginnt.

     datei
          Name der Datei, für die Sie einen Verweis erzeugen möchten. Die
          Datei muß vorhanden sein. Für datei dürfen Sie kein Verzeichnis
          angeben.

     verweis
          Name des Verweises, den Sie für datei eintragen möchten. Sie kön-
          nen für verweis einen einfachen Dateinamen oder einen absoluten
          oder relativen Pfadnamen angeben.

          Einfacher Dateiname:

          ln trägt den einfachen Dateinamen verweis in das aktuelle Ver-
          zeichnis ein.

          Absoluter oder relativer Pfadname präfix/verweis:

          ln trägt den einfachen Dateinamen verweis in das Verzeichnis
          präfix ein.

     Wenn das übergeordnete Verzeichnis von verweis schreibbar ist, aber
     das t-Bit (sticky-Bit) gesetzt hat, muß eine der folgenden Bedingungen
     erfüllt sein, um verweis anzulegen:

     -  die Datei muß dem Benutzer gehören

     -  das Verzeichnis muß dem Benutzer gehören


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     -  der Benutzer muß Schreibberechtigung für die Datei haben

     -  der Benutzer muß ein privilegierter Benutzer sein

     ln in dieser Form legt keine Verweise über Dateisystemgrenzen hinweg
     an. Verweise über Dateisystemgrenzen hinweg können Sie mit der Option
     -s einrichten (siehe Format 3 und Format 4).

   Format 2: Einfache Verweise unter dem gleichen Namen in ein anderes Ver-
     zeichnis eintragen

     ln [option] datei ... verzeichnis

     ln trägt für jede angegebene Datei datei einen Verweis in das angege-
     bene Verzeichnis ein. Die Datei ist dann in zwei verschiedenen Ver-
     zeichnissen unter dem gleichen einfachen Dateinamen ansprechbar.

     Keine Option angegeben:
          Existiert bereits eine Datei mit dem Namen, den der zu erzeugende
          Verweis erhalten soll, dann gibt ln eine Fehlermeldung aus. Die
          existierende Datei wird nicht überschrieben.

          Dies entspricht der alten Option -n, die aus Kompatibilitätsgrün-
          den weiterhin unterstützt wird.

     -f   (f - force) Existiert in verzeichnis bereits eine Datei mit dem
          Namen datei, dann erzeugt ln den Verweis ohne Rückfrage. War
          datei der einzige Verweis auf die ursprüngliche Datei, ist nach
          der Ausführung von ln der zugehörige Dateiinhalt gelöscht.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
          beginnt.

     datei
          Name der Datei, für die Sie einen Verweis erzeugen möchten. Die
          Datei muß vorhanden sein. Ein Verzeichnis dürfen Sie nicht ange-
          ben. Pro Aufruf können Sie mehrere Dateinamen angeben. Sie können
          für datei einen einfachen Dateinamen oder einen absoluten oder
          relativen Pfadnamen angeben.

          Einfacher Dateiname:

          ln trägt in verzeichnis den Verweis datei ein.

          Absoluter oder relativer Pfadname präfix/name:

          ln trägt in verzeichnis den einfachen Dateinamen name ein.







Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     verzeichnis
          Name des Verzeichnisses, in das Sie einen Verweis eintragen möch-
          ten. Das Verzeichnis muß existieren.

          ln in dieser Form legt keine Verweise über Dateisystemgrenzen
          hinweg an.

   Format 3: Symbolischen Verweis eintragen

     ln -s[-] name verweis

     ln -s erzeugt einen symbolischen Verweis verweis auf name, wobei name
     eine Datei oder ein Verzeichnis sein kann. Die Besonderheit von ln -s
     liegt darin, daß über verschiedene Dateisysteme hinweg verwiesen wer-
     den kann, was bei einfachen Verweisen nicht möglich ist.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn name mit -
          beginnt.

     name Name der Datei oder des Verzeichnisses, für das Sie einen symbo-
          lischen Verweis erzeugen möchten. Für name kann ein beliebiger
          Pfadname angegeben werden, der nicht existieren muß. name kann in
          einem anderen Dateisystem als verweis liegen.

     verweis
          Name des symbolischen Verweises, den Sie für name einrichten
          möchten. Sie können für verweis einen einfachen Dateinamen oder
          einen absoluten oder relativen Pfadnamen angeben.

          Einfacher Dateiname:

          ln trägt den einfachen Dateinamen verweis als symbolischen Ver-
          weis in das aktuelle Verzeichnis ein.

          Absoluter oder relativer Pfadname präfix/verweis:

          ln trägt den einfachen Dateinamen verweis in das Verzeichnis
          präfix ein.

          Existiert bereits eine Datei mit dem Namen verweis, erfolgt eine
          Fehlermeldung (siehe FEHLERMELDUNGEN); die bereits existierende
          Datei wird nicht überschrieben.

   Format 4: Symbolische Verweise unter dem gleichen Namen in ein anderes
     Verzeichnis eintragen

     ln -s[-] name ... verzeichnis

     ln trägt für jede angegebene Datei oder jedes angegebene Verzeichnis
     name einen symbolischen Verweis in das angegebene Verzeichnis
     verzeichnis ein.



Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     ln legt Verweise über Dateisystemgrenzen hinweg an.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn name mit -
          beginnt.

     name Name der Datei oder des Verzeichnisses, für das Sie einen symbo-
          lischen Verweis erzeugen möchten. Pro Aufruf können Sie mehrere
          Namen angeben. Sie können für name einen absoluten oder relativen
          Pfadnamen angeben.

          Absoluter oder relativer Pfadname präfix/name:

          ln trägt in verzeichnis den einfachen Dateinamen name als Verweis
          auf präfix/name ein.

          Existiert in verzeichnis bereits eine Datei mit dem gleichen ein-
          fachen Dateinamen wie name, erfolgt eine Fehlermeldung (siehe
          FEHLERMELDUNGEN); die bereits existierende Datei wird nicht über-
          schrieben.

     verzeichnis
          Name des Verzeichnisses, in das die symbolischen Verweise einge-
          tragen werden sollen. Das Verzeichnis muß existieren.

ARBEITSWEISE
   Einfache Verweise

     Wenn ln einen Verweis auf eine Datei erzeugt, dann wird der zum Ver-
     weis gehörige einfache Dateiname in das entsprechende Verzeichnis ein-
     getragen. Der Eintrag erhält die gleiche Indexnummer wie der alte
     Dateiname. Für beide Dateinamen ist also der gleiche Indexeintrag gül-
     tig (und damit sind auch Zugriffsrechte, Eigentümer, Daten usw. iden-
     tisch). Die Datei, auf die sich die Dateinamen beziehen, ist physisch
     nur einmal vorhanden. Sie können nun ein und dieselbe Datei unter ver-
     schiedenen Namen bzw. Pfadnamen ansprechen (siehe Beispiel 1).

     An der Indexnummer können Sie erkennen, ob zwei Dateinamen auf die-
     selbe Datei verweisen (siehe ls -i). Der Verweiszähler gibt an, wie
     viele Verweise auf die Datei bestehen, d. h. wie viele Verzeichnis-
     Einträge für die Datei existieren (siehe ls -l).

     Mit rm löschen Sie den Eintrag im Verzeichnis. Bestanden auf die Datei
     mehrere Verweise, so ist sie unter den nicht gelöschten Namen weiter-
     hin ansprechbar. Erst mit dem letzten Verweis löscht rm die Datei.

   Symbolische Verweise

     Ein symbolischer Verweis ist eine Datei, die einen Pfadnamen enthält.
     Diesen Pfadnamen können Sie mit dem Kommando ls -l lesen. Wenn die
     Shell einen Dateinamen findet, der zu einem symbolischen Verweis
     gehört, ersetzt sie diesen Namen durch den angegebenen Pfadnamen. Ein
     Pfadname wird also auf einen anderen abgebildet. Hier gibt es keinen


Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     Verweiszählmechanismus; mit dem symbolischen Verweis wird die Datei
     gelöscht, die den Pfadnamen enthält.

     Bei einem symbolischen Verweis enthält der Indexeintrag der Datei, auf
     die verwiesen wird, keine Information über diese Tatsache. Der Ver-
     weiszähler zählt nur die einfachen Verweise. Wenn Sie also das Ziel
     eines symbolischen Verweises löschen, existiert der symbolische Ver-
     weis zwar immer noch, aber er verweist auf eine Datei ohne Inhalt und
     Indexeintrag.

     Symbolische Verweise sind nicht an Dateisystemgrenzen gebunden. Der
     Pfadname kann der Name einer Datei oder eines Verzeichnisses sein.

     Symbolische Verweise können mit dem ls-Kommando sichtbar gemacht wer-
     den:

     -  Mit dem Kommando ls -l stellen Sie fest, welche Dateien im angege-
        benen Verzeichnis symbolische Verweise sind. Außerdem können Sie
        mit diesem Kommando den Inhalt dieser Dateien lesen. Das ist der
        Pfadname, der auf das Zeichen "->" folgt.

     -  Mit dem Kommando ls -L erhalten Sie Informationen über die Datei,
        auf die der symbolische Verweis zeigt.

        Operationen in symbolisch verwiesenen Verzeichnissen, die ".."
        beinhalten, wie z. B. "cd ..", referenzieren das Originalverzeich-
        nis!

FEHLERMELDUNGEN
     ln: no permission for verweis

     ln kann den Verweis verweis nicht anlegen, da Sie für das Verzeichnis,
     in das der Verweis eingetragen werden soll, kein Schreibrecht besitzen.

     ln: cannot access datei

     ln kann auf datei nicht zugreifen, da sie nicht existiert oder da Sie
     für ein Verzeichnis, das im Pfadnamen datei vorkommt, kein Ausführ-
     recht (x-Bit) besitzen.

     ln: <verz> directory

     Anstelle einer Datei haben Sie das Verzeichnis verz angegeben. ln
     erzeugt jedoch nur Verweise auf einfache Dateien, Gerätedateien und
     FIFO-Dateien, nicht aber auf Verzeichnisse.

     ln: different file system

     Sie wollten einen Verweis erzeugen und in einem anderen Dateisystem
     eintragen, als sich die betreffende Datei befindet. ln erzeugt jedoch
     keine Verweise über Dateisystemgrenzen hinweg. Versuchen Sie es mit
     der Option -s.


Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     ln: cannot create datei
     ln: File exists

     Sie haben versucht, in einem Verzeichnis einen Verweis datei anzule-
     gen, wobei datei in dem betreffenden Verzeichnis bereits existiert.

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
     ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
     LANG nicht oder als leere Zeichenkette definiert, verhält sich das
     System so, als wäre es nicht internationalisiert.

     Die Antwort auf Ja/Nein-Abfragen muß in der jeweils definierten Spra-
     chumgebung erfolgen.

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

BEISPIELE
     Beispiel 1

     Der Benutzer Max besitzt die Dateien bolte und laempel; sie stehen im
     Verzeichnis /home/max. Nun soll auch Moritz mit diesen Dateien arbei-
     ten. Damit Moritz weiterhin in seinem eigenen Verzeichnis /home/moritz
     arbeiten kann und dort nicht immer die langen Pfadnamen eingeben muß,
     legt Moritz im Verzeichnis /home/moritz Verweise auf diese Dateien an.
     Voraussetzung dafür ist, daß Moritz

     -  für sein Verzeichnis /home/moritz Schreibrecht hat

     -  für das Verzeichnis /home/max Ausführrecht (x-Bit) hat.

     Um die Dateien lesen und verändern zu können, benötigt Moritz außerdem
     Lese- und Schreibrecht für die Dateien. Im Beispiel ist das erfüllt,
     wenn Moritz der Gruppe proj angehört (siehe unten). Am schnellsten
     legt Moritz die Verweise mit einem ln-Aufruf gemäß Format 2 an:

     $ ln /home/max/bolte /home/max/laempel /home/moritz

     Dasselbe leisten die folgenden zwei ln-Aufrufe in Format 1:

     $ ln /home/max/bolte /home/moritz/bolte
     $ ln /home/max/laempel /home/moritz/laempel

     Wie die folgenden ls-Aufrufe zeigen, hat ln die Dateinamen bolte und
     laempel in das Verzeichnis /home/moritz eingetragen. Der Verweiszähler
     für die Dateien wurde auf 2 erhöht (ls -l). Den bolte- bzw. laempel-
     Dateinamen wurde jeweils die gleiche Indexnummer zugeordnet (ls -i).




Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     $ ls -l /home/moritz
     total 6
     -rw-rw----   2 max      proj          34   Mar 09 15:08 bolte
     -rw-rw----   2 max      proj        1217   Mar 09 18:59 laempel

     $ ls -i /home/max/bolte /home/moritz/bolte
     16435 /home/max/bolte    16435 /home/moritz/bolte

     $ ls -i /home/max/laempel /home/moritz/laempel
     24766 /home/max/laempel  24766 /home/moritz/laempel

     Der obige Aufruf ls -l zeigt auch, daß Max Eigentümer der Dateien
     bleibt. Max kann Moritz jederzeit die Erlaubnis, mit den Dateien zu
     arbeiten, entziehen, z. B. mit

     $ chmod 600 bolte laempel

     Will Moritz für die beiden Dateien nicht gleichnamige, sondern anders-
     lautende Verweise anlegen, muß er ln wie folgt im Format 1 aufrufen:

     $ ln /home/max/bolte /home/moritz/spitz
     $ ln /home/max/laempel /home/moritz/pfeife

     Beispiel 2

     Der Benutzer Norbert will von seinem Verzeichnis /home/norbert mög-
     lichst einfach auf das Verzeichnis /home2/andrea seiner Kollegin
     Andrea zugreifen. Er erstellt deshalb einen symbolischen Verweis durch
     einen Aufruf von ln im Format 3.

     $ ln -s /home2/andrea /home/norbert/and

     Der Benutzer Norbert kann nun von seinem Verzeichnis /home/norbert aus
     über den symbolischen Verweis and direkt auf Andreas Verzeichnis
     zugreifen, obwohl sich dieses in einem anderen Dateisystem befindet:

     $ ls -lL and
     total 16
     drwxr-xr-x   2 andrea   usrother    2560 Feb 27 13:20 PASCAL
     drwxr-xr-x   2 andrea   usrother    2048 Mar  5 17:32 KURSE
     drwxr-xr-x   2 andrea   usrother     512 Mar  5 12:07 BRIEFE
     drwxr-xr-x   2 andrea   usrother     512 Feb 26 10:05 bin
     -rw-r-xr-x   1 andrea   usrother     148 Feb 20 09:28 test

     Beispiel 3

     Der Benutzer Norbert hat in seinem Verzeichnis /home/norbert die Ver-
     zeichnisse briefe89, briefe90 und briefe91 angelegt:

     $ ls /home/norbert
     briefe89  briefe90  briefe91



Seite 8                      Reliant UNIX 5.44               Gedruckt 11/98

ln(1)                                                                 ln(1)

     Er will nun von seinem Verzeichnis /home/norbert/briefe91 ohne Umwege
     auf die beiden anderen Verzeichnisse zugreifen. Hierzu legt er zwei
     symbolische Verweise durch einen Aufruf von ln im Format 4 an:

     $ cd /home/norbert
     $ ln -s /home/norbert/briefe89 /home/norbert/briefe90 briefe91
     $ cd briefe91
     $ ls -og briefe??
     lrwxrwxrwx   1    25 Mar  6 12:42 briefe89 -> /home/norbert/briefe89
     lrwxrwxrwx   1    25 Mar  6 12:42 briefe90 -> /home/norbert/briefe90
     $ ls briefe90
     angebot     brief.huber  brief.maier  text

SIEHE AUCH
     chmod(1), cp(1), find(1), ls(1), mv(1), pax(1), rm(1), link(2),
     readlink(2), stat(2), symlink(2).






































Seite 9                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026