[SLL] find insanity
Russell Evans
russell-evans at qwest.net
Tue May 31 22:32:41 PDT 2005
On Tue, 31 May 2005 23:17:05 -0400
"Russell Evans" <russell-evans at qwest.net> wrote:
> The following really works, tested and everything.
OK, I'm sure it really really works now and Robert
Woodcock's solution looks better and better. OK, its much better than
this.
Thank you
Russell
#!/bin/sh
HELP="$0 -d [ directory path to search ] -n [ direstory name to search
for ]"
getopt -o :d:n 1> /dev/null
for ARG in $@ ; do
case "$ARG" in
-d) shift ; DIRECTORY="$1" ; shift ;;
-n) shift ; NAME="$1" ; shift ;;
esac
done
if [ ! $DIRECTORY ] || [ ! $NAME ] ; then
echo "$HELP"
exit 0
fi
for dir in `find $DIRECTORY -type d -name "$NAME" ` ; do
DIR=${dir%/*}
if [ "$ALL_DIR" ] ; then
for TEST_DIR in $ALL_DIR ; do
DIR_FOUND=`eval echo $DIR | grep $TEST_DIR/`
TEST_DIR_FOUND=`eval echo $TEST_DIR | grep $DIR/`
if [ ! $DIR_FOUND ] && [ ! $TEST_DIR_FOUND ] ; then
ALL_DIR="$DIR $ALL_DIR"
break
elif [ $TEST_DIR_FOUND ] ; then
MOST_DIR=
for SOME_DIR in $ALL_DIR ; do
if [ $SOME_DIR != $TEST_DIR_FOUND ] ; then
MOST_DIR="$SOME_DIR $MOST_DIR"
fi
done
ALL_DIR="$DIR $MOST_DIR"
break
fi
done
else
ALL_DIR="$DIR"
fi
done
echo $ALL_DIR
exit 0
More information about the linux-list
mailing list