UNIX 109: ln -s
Q: Was passiert durch folgende Shell-Kommandos:
mkdir ./dir
ln -s dir ./symlink
ln -s dir ./symlink
A: Ein find liefert einem folgendes:
$ find dir symlink -type l -printf '%p -> %l\n' -o -print
dir
dir/dir -> dir
symlink -> dir
Beim Anlegen des zweiten symbolischen Links folgt dieser dem angegebenen Zielpfad ./symlink und gelangt so in das Verzeichnis ./dir, innerhalb dessen dann ein weiterer symbolischer Link angelegt wird.
Es empfiehlt sich deshalb, den alten Verzeichniseintrag vorher mit rm -f ./symlink zu löschen bevor man den symbolischen Link erstellt.
Oder man verwendet direkt ln --symbolic --no-dereference --force oder kurz ln -snf dir ./symlink.
Durch diese Unachtsamkeit liegen gerne mal unter /etc/univention/ssl/ oder /etc/runit/ unmotiviert fehlerhafte Links herum…
Written on March 19, 2019