Linux/Unix下删除指定目录下的无效链接文件

#!/bin/sh

usage()
{
    echo "RemoveBroken 0.1, a shell script to remove broken link files."
    echo "License: MIT, (c) chenzhiqiang"
    echo "Usage:"
    echo "  $0 --help           print this help."
    echo "  $0 --path PATH      broken links under this PATH will be removed."
    echo "  $0 --stdin          read PATHs from stdin."
    echo "  $0                  same as $0 --stdin."
}

fromStdin()
{
    while [ 1==1 ]
    do
        read
        [ "$REPLY" != "" ] || exit 0
        [ ! -L $REPLY -o -e $REPLY ] || unlink $REPLY
    done
}

fromPath()
{
    find $2 | $0 --stdin
}

if [ $# = 0 ]
then
    usage
    fromStdin
    exit 0
fi

case $1 in
--stdin)
    fromStdin
    ;;
--path)
    find $2 | $0 --stdin
    ;;
--help)
    usage
    ;;
*)
    echo "RemoveBroken: unknown usage."
    usage
    ;;
esac

编程技巧