ln(1-ucb) (BSD Compatibility Package) ln(1-ucb)
NAME
ln - Hard Links oder symbolische Links auf Dateien erstellen
SYNTAX
/usr/ucb/ln [-fs] filename [linkname]
/usr/ucb/ln [-fs] pathname ... directory
BESCHREIBUNG
/usr/ucb/ln erstellt einen zusätzlichen Verzeichniseintrag zu einer
Datei oder einem Verzeichnis. Dieser Eintrag wird "Link" genannt.
Einer Datei kann eine beliebige Anzahl von Links zugeordnet werden.
Die Anzahl der Links hat keine Auswirkungen auf andere Dateiattribute
wie beispielsweise Größe, Schutzmaßnahmen, Daten usw.
filename ist der Name der Originaldatei oder des Originalverzeichnis-
ses. linkname ist der neue Name, der der Datei oder dem Dateinamen
zugeordnet werden soll. Wenn linkname übergangen wird, wird die letzte
Komponente von filename als Name des Links verwendet.
Wenn das letzte Argument der Name eines Verzeichnisses ist, werden
symbolische Links in diesem Verzeichnis für jedes Argument pathname
erstellt. /usr/ucb/ln verwendet die letzte Komponente jedes Pfadnamens
pathname als Namen für die einzelnen Links im angegebenen directory.
Ein Hard Link (Standard) ist ein Standardverzeichniseintrag genau wie
der bei der Dateierstellung hergestellte Eintrag. Hard Links können
nur für bereits vorhandene Dateien erstellt werden. Hard Links können
nicht dateisystem-übergreifend (Plattenpartitionen, eingehängte Datei-
systeme) erstellt werden. Beim Löschen einer Datei müssen alle Hard
Links auf diese Datei ebenfalls gelöscht werden, einschließlich dem
Namen, unter dem sie zuerst erstellt wurde. Beim Löschen des letzten
Hard Links wird der der Datei zugeordnete I-Node freigegeben.
Ein symbolischer Link, der mit der Option -s erstellt wird, ist ein
spezieller Verzeichniseintrag, der auf eine andere angegebene Datei
zeigt. Symbolische Links können komplette Dateisysteme umfassen und
auf Verzeichnisse zeigen. Sie können sogar einen symbolischen Link
erstellen, der auf eine Datei verweist, die sich momentan nicht im
Dateisystem befindet. Das Löschen der Datei, auf die er verweist, hat
keine Auswirkung auf den symbolischen Link selbst und ändert ihn
nicht.
Ein symbolischer Link auf ein Verzeichnis hat andere Auswirkungen, als
Sie möglicherweise in bestimmten Fällen vermuten. Während ein ls(1)
auf einen solchen Link die Dateien im Verzeichnis anzeigt, auf das
gezeigt wird, zeigt ein Kommando ls -l Informationen zu dem Link
selbst an:
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
ln(1-ucb) (BSD Compatibility Package) ln(1-ucb)
example% /usr/ucb/ln -s dir link
example% ls link
file1 file2 file3 file4
example% ls -l link
lrwxrwxrwx 1 user 7 Jan 11 23:27 link -> dir
Wenn Sie mit Hilfe eines symbolischen Links in ein anderes Verzeichnis
wechseln [siehe cd(1)], gelangen Sie zu der Position im Dateisystem,
auf die der Link zeigt. Dies bedeutet, daß der Vater des neuen
Arbeitsverzeichnisses nicht der Vater des symbolischen Links ist, son-
dern der Vater des Verzeichnisses, auf das gezeigt wird. Im folgenden
Beispiel ist das endgültige Arbeitsverzeichnis /usr und nicht
/home/user/linktest.
example% pwd
/home/user/linktest
example% /usr/ucb/ln -s /var/tmp symlink
example% cd symlink
example% cd ..
example% pwd
/usr
Benutzer der C-Shell können alle auftretenden Ansteuerungsprobleme
verhindern, wenn sie die Kommandos pushd und popd anstelle von cd ver-
wenden.
OPTIONEN
-f Einen Hard Link auf ein Verzeichnis erzwingen - diese Option
steht nur dem Superuser zur Verfügung.
-s Einen oder mehrere symbolische Links erstellen.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
ln(1-ucb) (BSD Compatibility Package) ln(1-ucb)
BEISPIEL
Die unten aufgeführten Kommandos verdeutlichen die Auswirkungen der
verschiedenden Formen des Befehls /usr/ucb/ln:
example% /usr/ucb/ln file link
example% ls -F file link
file link
example% /usr/ucb/ln -s file symlink
example% ls -F file symlink
file symlink@
example% ls -li file link symlink
10606 -rw-r--r-- 2 user 0 Jan 12 00:06 file
10606 -rw-r--r-- 2 user 0 Jan 12 00:06 link
10607 lrwxrwxrwx 1 user 4 Jan 12 00:06 symlink -> file
example% /usr/ucb/ln -s nonesuch devoid
example% ls -F devoid
devoid@
example% cat devoid
devoid: No such file or directory
example% /usr/ucb/ln -s /proto/bin/* /tmp/bin
example% ls -F /proto/bin /tmp/bin
/proto/bin:
x* y* z*
/tmp/bin:
x@ y@ z@
HINWEISE
Wenn das letzte Argument ein Verzeichnis ist, sollten keine einfachen
Basisnamen als Argument pathname verwendet werden. Wenn ein Basisname
verwendet wird, zeigt der resultierende symbolische Link auf sich
selbst:
example% /usr/ucb/ln -s file /tmp
example% ls -l /tmp/file
lrwxrwxrwx 1 user 4 Jan 12 00:16 /tmp/file -> file
example% cat /tmp/file
/tmp/file: Too many levels of symbolic links
Verwenden Sie vollständige Pfadnamen oder geben Sie vor dem Verzeich-
nis die Variable PWD an, die auf die Dateien im Arbeitsverzeichnis
verweist, um dieses Problem zu verhindern:
example% rm /tmp/file
example% /usr/ucb/ln -s $PWD/file /tmp
lrwxrwxrwx 1 user
4 Jan 12 00:16 /tmp/file -> /home/user/subdir/file
SIEHE AUCH
cp(1), ls(1), mv(1), rm(1), link(2), readlink(2), stat(2), symlink(2).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98