Jeśli mam dowiązanie symboliczne /var/opt/foo
utworzone za pomocą ln -fs /path/to/target/dir foo
. Jak mogę w skrypcie, który widzi tylko link /path/to/target/dir
?
To, co chcę osiągnąć w skrypcie, to rm -rf /path/to/target/dir
zanim to zrobię ln -fs /path/to/another/dir foo
.
readlink()
wywołanie systemowe od czasów 4.2BSD. Obecnereadlink
narzędzie BSD zostało wydane wraz z FreeBSD 4.10. Został (ponownie) zaimplementowany jako twardy link dostat
polecenia ( strona podręcznika MacOS X strona podręcznika FreeBSD 9 ). Zauważ, że nie ma takiej-m
opcji.-f
ireadlink -f
działa równie dobrze (zakładając, że istnieje cel łącza). W BSDrealpath
wydaje się być kolejną alternatywą dlareadlink -m
.Jednym ze sposobów jest (mam nadzieję na lepszą wersję)
źródło
readlink
jest twoim przyjacielem.