#!/bin/sh - # push - push files into a subdirectory # Steve Kinzler, kinzler@cs.indiana.edu, Nov 93 # http://www.cs.indiana.edu/~kinzler/home.html#unix # Creates a directory and moves files into it. The directory name may be # the same as one of the files. bad= while : do case $# in 0) break;; *) case "$1" in --) shift; break;; -h) bad=t; break;; -*) bad=t; echo "$0: unknown option ($1)" 1>&2;; *) break;; esac shift;; esac done case "$#,$bad" in 0,*|*,?*) echo "usage: $0 [ file ... ] dirname" 1>&2; exit 1;; 1,) exec mkdir "$1";; esac flag= for arg do case "$flag" in '') set x; shift; flag=t;; *) set x ${1+"$@"} "$dir"; shift;; esac dir="$arg" done tmp=`echo "$dir" | sed "s:[^/]*$:PUSH$$:"` trap 'echo "$0: aborting $dir push, left as PUSH$$" 1>&2; exit 3' 1 2 13 15 mkdir "$tmp" || exit $? mv "$@" "$tmp" status=$? if test -f "$dir" -o -d "$dir" then echo "$0: cannot create $dir, already exists, left as PUSH$$" 1>&2 exit 2 else mv "$tmp" "$dir" fi case "$?" in 0) exit $status;; *) exit $?;; esac