: ########################################################################## # Title : update.sh - update files based on the modification time # Author : Heiner Steven # Date : 1996-05-24 # Requires : # Category : File Utilities # SCCS-Id. : @(#) update.sh 1.3 03/12/19 ########################################################################## # Description # ########################################################################## set -u PN=`basename "$0"` # program name VER='1.3' CpioFlags=dm CpFlags= usage () { echo >&2 "$PN - update files based on the modification time $VER (hs '96) usage: $PN [-v] file [file ...] directory $PN [-v] file file" exit 1 } msg () { for i do echo "$PN: $i" >&2 done } fatal () { msg "$@"; exit 1; } Recurse=no # Not implemented yet Verbose=no MultipleFiles=no while [ $# -gt 0 ] do case "$1" in -v) CpioFlags="${CpioFlags}v" Verbose=yes;; # -[rR]) Recurse=yes;; # Not implemented yet --) shift; break;; -h) usage;; -*) usage;; *) break;; # First file name esac shift done [ $# -lt 2 ] && usage [ $# -gt 3 ] && MultipleFiles=yes Src= while [ $# -gt 1 ] do if [ -d "$1" -a $Recurse = no ] then msg "$1: is a directory" else Src="${Src:+$Src }\"$1\"" # Preserve whitespace fi shift done Dst="$1" if [ -d "$Dst" ] then # Copy files to a directory # msg "copy files to directory $Dst" eval ls -d $Src | ( [ $Verbose = no ] && exec >/dev/null 2>&1 cpio -p$CpioFlags "$Dst" ) elif [ -f "$Dst" ] then fatal "$Dst: will not overwrite existing file" elif [ $MultipleFiles = no ] then # Copy one file to a new file # msg "copy 1 file to file $Dst" eval cp ${CpFlags} $Src \"$Dst\" else # Copy many files to one file fatal "$Dst: target directory does not exist" fi