: ########################################################################## # Shellscript: cpiodir - pack directory into cpio-file # Version : 0.2 (beta) # Author : Heiner Steven (heiner.steven@odn.de) # Written : 18.08.94 # Category : File Utilities # SCCS-Id. : $Id: cpiodir,v 1.1.1.1 1999/06/15 19:29:05 heiner Exp $ ########################################################################## # Description # # Changes # 16-03-95 stv new switch -d for destination (0.2) ########################################################################## PN=`basename $0` # program name VER='0.2 (beta)' Ext=.cpio.Z # file extension for compressed cpio archive Usage () { echo "$PN - archive directory with cpio, $VER (stv '95) usage: $PN [-d destination] directory [directory ...] -d: destination directory for archive (default ist current directory)" >&2 exit 1 } Msg () { for i do echo "$PN: $i" >&2 done } Fatal () { Msg "$@"; exit 1; } set -- `getopt d:h "$@"` || Usage while [ $# -gt 0 ] do case "$1" in -d) Dest="$2"; shift;; --) shift; break;; -h) Usage;; -*) Usage;; *) break;; # First file name esac shift done [ $# -gt 0 ] || Usage [ -w "${Dest:=.}" ] || Fatal "no right to write to destination directory" for dir do [ -d "$dir" ] || { Msg "$dir is no directory - ignored"; continue; } [ -r "$dir" -a -x "$dir" ] || { Msg "no read and execute rights to $dir - ignored"; continue } case "$dir" in /*) Msg "do not start directory names with '/' - ignored" continue;; esac A="$Dest/${dir}$Ext" # archive name echo "$A - \c" >&2 trap "rm -f $A > /dev/null 2>&1; Msg '$A deleted'; exit 2" 1 2 3 13 15 find $dir -type f -print | cpio -ocm | compress > $A done exit 0