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