Symbolische Links aufräumen
Mit Hilfe von symlinks lassen sich symbolische Links innerhalb eines Systems finden und deren Status angezeigen. Im FreeBSD Portbaum findet man symlinks unter sysutils/symlinks:
# cd /usr/ports/sysutils/symlinks && make install clean
Nun kann mit Hilfe von symlinks in einem Verzeichnis (in diesem Beispiel das Verzeichnis c) nach symbolischen Links gesucht werden. Mit der -v Option werden auch relative Links angezeigt. Die -s Option sucht nach Links welche ihr Ziel auch auf einem kürzerem Weg erreichen könnten. Diese werden als "lenghty" gekennzeichnet. Links welche als "dangling" markiert sind, zeigen auf ein Ziel welches nicht mehr existiert. Als "messy" gekennzeichnete Links enthalten unnötige Zeichen:
# symlinks -sv c relative: /tmp/a/b/c/foo -> ../foo absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo lengthy: /tmp/a/b/c/ok -> ../c/test dangling: /tmp/a/b/c/fail -> ../c/tes messy: /tmp/a/b/c/mess -> ../c//test
Mit der -d Option können nun Links entfernt werden, deren Ziel nicht mehr existiert:
# symlinks -d c absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo dangling: /tmp/a/b/c/fail -> ../c/tes deleted: /tmp/a/b/c/fail -> ../c/tes messy: /tmp/a/b/c/mess -> ../c//test
Verwendet man die -r Option, können auch Verzeichnisse rekursiv nach symbolischen Links durchsucht werden. Durch die -c Option können absolute in relative Links umgewandelt werden. Ausserdem werden dabei überflüssige Zeichen aus den Links entfernt. Mit der -t Option können die Änderungen zuerst begutachtet werden, ohne das diese ausgeführt werden:
# symlinks -rt b absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo changed: /tmp/a/b/c/bar -> ../../../../tmp/a/b/foo messy: /tmp/a/b/c/mess -> ../c//test changed: /tmp/a/b/c/mess -> ../c/test # symlinks -rc b absolute: /tmp/a/b/c/bar -> /tmp/a/b/foo changed: /tmp/a/b/c/bar -> ../../../../tmp/a/b/foo messy: /tmp/a/b/c/mess -> ../c//test changed: /tmp/a/b/c/mess -> ../c/test
Mehr Informationen zu symlinks findet man in der Manpage symlinks(8).