> cd /tmp
> ln -s foo
> ls -alhF /tmp
lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo
Ist dies ein Fehler ln
oder gibt es einen Anwendungsfall, um eine Datei mit sich selbst zu verknüpfen?
Das ist mit coreutils 8.21-1ubuntu5.1
.
> cd /tmp
> ln -s foo
> ls -alhF /tmp
lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo
Ist dies ein Fehler ln
oder gibt es einen Anwendungsfall, um eine Datei mit sich selbst zu verknüpfen?
Das ist mit coreutils 8.21-1ubuntu5.1
.
Antworten:
Es ist kein Fehler. Der Anwendungsfall ist, wenn Sie eine Datei mit demselben Basisnamen, jedoch in einem anderen Verzeichnis verknüpfen möchten:
cd /tmp
ln -s /etc/passwd
ls -l passwd
lrwxrwxrwx 1 xxx xxx 11 Jul 29 09:10 passwd -> /etc/passwd
Es ist wahr, wenn Sie dies mit einem Dateinamen tun, der sich im selben Verzeichnis befindet, wird ein Link zu sich selbst erstellt, der nicht viel Gutes bewirkt!
Dies funktioniert unabhängig davon, ob Sie Symlinks oder Hardlinks verwenden.
Der einfachste Weg, das herauszufinden, ist natürlich, es auszuprobieren und zu sehen. Wenn kein zweites Argument angegeben wird, ln
wird im aktuellen Verzeichnis ein Link mit demselben Namen wie das Original erstellt:
$ ln -s /etc
$ ls -l
lrwxrwxrwx 1 terdon terdon 4 Jul 29 16:09 etc -> /etc
Dies wird auch erklärt in man ln
:
Erstellen Sie im 2. Formular einen Link zu TARGET im aktuellen Verzeichnis.
Die "2. Form" bezieht sich auf:
In [OPTION] ... ZIEL (2. Form)
ln -s /path/to/file
ist eine Abkürzung fürln -s /path/to/file .
. Wiels
ist die Abkürzung fürls .
.