回答:
link=/var/opt/foo
target=$(readlink "$link")
$target ファイルシステムに格納されたとおりに、リンクのターゲットになります。
ただし、シンボリックリンクは相対的なものになる可能性があるため、通常の使用にはこれが適しています。
target=$(readlink -f "$link")
これはreadlink、BSDおよび他のシステムには存在しない可能性があるGNU Coreutilsから使用することに注意してください。
編集: readlink -fリンクターゲットが存在する限り、BSDで動作します。realpathBSD専用の別のツールであり、同様に機能します。
-f、readlink -f同様に機能します(リンクターゲットが存在する場合)。BSDでは、realpathのもう1つの代替手段のようreadlink -mです。
1つの方法は(私はより良いバージョンを望んでいます)
olddir=$(pwd)
cd /var/opt/foo
deleteme=$(pwd)
cd $olddir
rm -rf "$olddir"
readlinkあなたの友だちです。
readlink()4.2BSDの時代からシステムコールがありました。現在のBSDsのreadlinkユーティリティはFreeBSD 4.10でリリースされました。statコマンドのハードリンクとして(再)実装されました(MacOS Xマニュアルページ FreeBSD 9マニュアルページ)。-mオプションがないことに注意してください。