: ########################################################################## # Shellscript: savecp - don't let cp overwrite a file # Version : 0.2 (beta) # Author : Heiner Steven (heiner.steven@odn.de) # Date : 23.01.1996 # Category : File Utilities # SCCS-Id. : $Id: savecp,v 1.1.1.1 1999/06/15 19:29:05 heiner Exp $ ########################################################################## # Description # If "cp" is called with two files as arguments, it will # overwrite the second file. This script asks for # confirmation before doing so. # Changes # 24.10.96 hs Add "verbose" mode (-v) (0.2) ########################################################################## PN=`basename $0` # Program name VER='0.2 (beta)' verbose=no Args= while [ $# -gt 0 ] do case "$1" in -v) verbose=yes;; --) shift; break;; -*) Args="${Args:+$Args }$1";; *) break;; # First file name esac shift done # Special case: "cp file1 file2": ask for confirmation if [ $# -eq 2 -a -f "$2" -a -s "$2" ] then while : do echo >&2 "$PN: Overwrite file <$2> (j/y/n)? \c" read OK < /dev/tty || exit 0 case "$OK" in [jJyY]*) break;; [nN]*) echo "$PN: Nothing copied." >&2; exit 0;; esac done fi if [ $verbose = yes ] then while [ $# -gt 1 ] do Files="${Files} $1" # Files may not contain whitespace! shift done Target="$1"; shift for File in $Files do echo >&2 "$File" cp "$File" "$Target" done else exec cp $Args "$@" fi