#!/bin/sh -efu

finder() { # what where
  find "$1" -type l | while read F; do
    case `realpath "$F"` in
      $2/*) printf "%s\n" "$F";;
    esac
  done
}

case "$1" in
  find|show) finder "$3" "$2" | while read F; do ls -l "$F"; done ;;
  erase) finder "$3" "$2" | while read F; do rm -v "$F"; done ;;
  link) D=`realpath $2`; ( cd "$D"; find . -type f ) | while read F; do ln -srfv "$D/$F" "$3/$F"; done ;;
esac
