#!/bin/sh ######################################################################### # # FILE : dirown # DATE : 6.8.2000 # AUTHOR : Patrick Meier / patrick.meier@gmx.net # DESCRIPTION : change owner of a directorytree # # Copyrigth (C) 2001 by Patrick Meier, Switzerland # ######################################################################### PN=`basename "$0"` STARTSTRING="==>" ######################################################################### # defines ######################################################################### CHMOD="chmod" START_PATH="." CHOWN="chown" CHGRP="chgrp" DEFAULT_OWNER="$USER" DEFAULT_GROUP="$USER" DEFAULT_FILES="*" ######################################################################### # Usage ######################################################################### Usage() { echo "$PN - change owner of a directorytree" echo "usage: $PN [-o owner (default $DEFAULT_OWNER)] [-g group (default $DEFAULT_GROUP)] [-p path (default .)] [-pattern file-pattern]" exit 1 } ######################################################################### # ParameterFailed ######################################################################### ParameterFailed() { echo "${STARTSTRING}Parameter faild: $1 ..."; echo "" Usage } ######################################################################### # main ######################################################################### VERBOSE="" FILEPATTERN="\"*\"" while [ $# -gt 0 ] do case "$1" in -o) if [ $# -gt 1 ] ; then $DEFAULT_OWNER="$2"; shift; else ParameterFailed "$1"; fi;; -g) if [ $# -gt 1 ] ; then DEFAULT_GROUP="$2"; shift; else ParameterFailed "$1"; fi;; -p) if [ $# -gt 1 ] ; then START_PATH="$2"; shift; else ParameterFailed "$1"; fi;; -pattern) if [ $# -gt 1 ] ; then FILEPATTERN="$2"; shift; else ParameterFailed "$1"; fi;; -verbose) VERBOSE="YES";; -h) Usage;; -*) Usage;; esac shift done echo "${STARTSTRING}Changing owner of directorie(s) and file(s) $FILEPATTERN to $DEFAULT_OWNER/$DEFAULT_GROUP..." CMD="find $START_PATH -name $FILEPATTERN -print" FILES="`eval $CMD`" if [ -n "$VERBOSE" ] then echo "$CMD" echo "$FILES" fi for i in $FILES do echo $CHOWN $DEFAULT_OWNER $i echo $CHGRP $DEFAULT_GROUP $i done ######################################################################### # EOF #########################################################################