#!/bin/bash set -e : <<inline_doc desc: Copy files from one dir to another dir using tar usage: do_copy_files $PRUNEPATH $ROOT_DIR $DEST_DIR input vars: $1 list of dirs that must be skipped by tar $2 the root dir of the files that will be copied $3 the dir where the copied files will be placed externals: -- modifies: -- returns: -- on error: on success: inline_doc TMP_FILE=/tmp/prunelist echo -en "\nCopying system files to $3 ..." # Create a file that we can pass to tar as an "exclude list". # There might be an easier way to achieve tar exclusions? Strip # the leading /. for F in $1 ; do echo .${F} >> $TMP_FILE done mkdir -p $3 cd $2 tar -X $TMP_FILE -cf - . | tar -C $3 -xf - # Clear out the temporary file rm -f ${TMP_FILE} echo "done."