#!/bin/sh usage () { cat <&2 Usage: ${0##*/} FOLDERS Set file/directory owner and permissions according to current umask for current user. EOF } [ $# -eq 0 ] && usage && exit 1 [ "$1" = "-h" ] && usage && exit [ "$1" = "--" ] && shift FMASK=$(umask -S | sed 's/x//g') DMASK=$(umask -S) [ -z "$UID" ] && UID=$(id -u) [ -z "$GID" ] && GID=$(id -g) for i ; do find "$i" -exec chown -R "$UID:$GID" {} \; find "$i" -type d -exec chmod "$DMASK" {} \; find "$i" -type f -exec chmod "$FMASK" {} \; done