LDP/LDP/guide/docbook/abs-guide/ex48.sh

38 lines
941 B
Bash

#!/bin/bash
# Copying a directory tree using cpio.
# Advantages of using 'cpio':
# Speed of copying. It's faster than 'tar' with pipes.
# Well suited for copying special files (named pipes, etc.)
#+ that 'cp' may choke on.
ARGS=2
E_BADARGS=65
if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` source destination"
exit $E_BADARGS
fi
source="$1"
destination="$2"
###################################################################
find "$source" -depth | cpio -admvp "$destination"
# ^^^^^ ^^^^^
# Read the 'find' and 'cpio' info pages to decipher these options.
# The above works only relative to $PWD (current directory) . . .
#+ full pathnames are specified.
###################################################################
# Exercise:
# --------
# Add code to check the exit status ($?) of the 'find | cpio' pipe
#+ and output appropriate error messages if anything went wrong.
exit $?