Ln (Unix)
# Ln (Unix)

Mit ln wird auf unixartigen Systemen ein weiterer Verzeichnis-Eintrag für eine Datei erzeugt. Mit dem Dienstprogramm können sowohl „harte“ als auch „symbolische Links“ erstellt werden. Entfernt werden diese Links mit dem Befehl rm(1) oder auch unlink(1). Die Kommandozeilenprogramme benutzen dazu die POSIX-Funktionen link, unlink und symlink der C-Standard-Bibliothek.
Ein ln-Programm war schon in den ersten Versionen von AT&T UNIX vorhanden.

## Verwendung
### Verwendung mit einem Parameter

ln muss stets mit mindestens einem Argument aufgerufen werden. Das erste Argument stellt dabei stets die Quelldatei dar, d. h. den Namen der bereits existierenden Datei. Wenn kein zweites Argument angegeben wird, dann wird im aktuellen Arbeitsverzeichnis ein gleichnamiger Link auf die Datei angelegt. Ein Aufruf wie
erzeugt im aktuellen Arbeitsverzeichnis demnach einen Link namens quelldatei. Ein Aufruf wie ln quelldatei führt zu einem Fehler, weil dies einen gleichnamigen Link auf die bereits existierende Datei im aktuellen Verzeichnis erzeugen würde, in einem Ordner zwei Dateien aber nicht den gleichen Namen tragen dürfen.

### Verwendung mit mehreren Parametern

Bei der Verwendung mit exakt zwei Argumenten stellt das erste die Quelldatei dar, wohingegen das zweite Argument den Namen der zu erstellenden Zieldatei angibt. Die Syntax ist demnach:
Eine Verwendung mit mehr als zwei Argumenten wird derart interpretiert, dass zunächst mehrere Quelldaten angegeben werden, auf die verlinkt werden soll, und als letztes Argument ein Verzeichnis, in dem die gleichnamigen Links zu diesen Quelldateien erzeugt werden sollen. Ein Aufruf wie
erzeugt im Zielverzeichnis also drei Hardlinks mit den Namen datei1, datei2 und datei3.
Bei der Verwendung mit mindestens zwei Parametern sei angemerkt, dass die Reihenfolge und Bedeutung der Parameter absolut analog zu den ebenso gebräuchlichen Unix-Kommandos cp und mv, genutzt zum Kopieren bzw. Verschieben von Dateien oder Ordnern, funktioniert.

### Erzeugung symbolischer Links

Wie fast jedes Unix-Kommando nimmt auch ln zusätzliche Parameter in der Form ln -parameter ... an. Einer der wichtigsten und meistbenutzten Parameter ist dabei -s, mit dem sich, anstelle von harten Links, symbolische Links erstellen lassen. Aufgrund der Beschränkungen von harten Links, die weder auf Verzeichnisse verweisen noch Partitionsgrenzen überwinden können, werden symbolische Links in modernen Unix-Derivaten, zum Beispiel Linux, sehr oft verwendet.