#!/bin/sh # When lpath is /, it can delete all null links existing in your system INTERACTIVELY!!! # # Written by home_king #
prompthelp() { echo ======================================== echo 'Delete symbolic links with null target.' echo 'usage:dellink [-e] [-o] [PATH]' echo ' -f:EXPERT mode,no prompt.WARNNING!!!' echo ' -c:Just apply to current directory.' echo ' -h:Print this help.' echo ' Without PATH, we set it ".".' echo ======================================== } delflag="" promptdel() { read -p 'WARNNING!!!Without PROMPT!!!Continue?[y/n]' delflag case $delflag in y ) return 0;; n ) exit 1;; * ) promptdel esac } while getopts ":fch" opt; do case $opt in f ) INTERACTIVE="f" promptdel;; c ) DEPTH="maxdepth 1";; h ) prompthelp exit 0;; ? ) echo "Invalid Option!" prompthelp exit 1 esac done shift $(($OPTIND - 1)) lpath=$1 [ $# -gt 1 ] && prompthelp && exit 1 if [ -d $1 ]; then linklist=$(find $1 -${DEPTH:-"depth"} -type l |xargs) for i in $linklist; do [ ! -f $i ] && rm -${INTERACTIVE:-"i"} $i done else echo "PATH is not a directory!" prompthelp fi