2018-03-14 00:26:12 +01:00
|
|
|
#!/bin/sh
|
2018-03-14 00:53:30 +01:00
|
|
|
p="${1%/}"
|
2018-03-16 05:02:12 +01:00
|
|
|
p="${p#/}"
|
2018-03-14 00:26:12 +01:00
|
|
|
|
2018-03-16 05:02:12 +01:00
|
|
|
r=""
|
2018-03-14 00:26:12 +01:00
|
|
|
|
2018-03-16 05:02:12 +01:00
|
|
|
while [ -n "$p" ]; do
|
|
|
|
case "$p" in
|
|
|
|
*/*)
|
|
|
|
seg="${p%%/*}"
|
|
|
|
p="${p#*/}"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
seg="$p"
|
|
|
|
p=""
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
case "$seg" in
|
|
|
|
.)
|
|
|
|
r="${r%/*}"
|
|
|
|
continue
|
|
|
|
;;
|
|
|
|
..)
|
|
|
|
r="${r%/*/*}"
|
|
|
|
continue
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
r="$r/$seg"
|
|
|
|
target="$(readlink "$r")"
|
|
|
|
case "$target" in
|
|
|
|
/*) p="${target}"
|
|
|
|
r="";;
|
|
|
|
'') ;;
|
|
|
|
*) p="${p%/*}/${target}";;
|
|
|
|
esac
|
|
|
|
p="${p#/}"
|
|
|
|
done
|
|
|
|
|
|
|
|
echo "$r"
|