find . -type l -exec sh -c '
  symlink="$1"
  target=$(readlink -f "$symlink")

  # Skip broken symlinks
  if [ -z "$target" ] || [ ! -e "$target" ]; then
    return
  fi

  # Skip shared targets
  count=$(find . -type l -exec readlink -f {} \; | grep -c "^${target}$")
  if [ "$count" -gt 1 ]; then
    return
  fi

  # Dry run - just print what would happen
  if [ -d "$target" ]; then
    echo "MOVE (dir):  $symlink -> $target"
  elif [ -f "$target" ]; then
    echo "MOVE (file): $symlink -> $target"
  fi
' _ {} \;
