#!/bin/sh # Emulate cp -s for systems without coreutils if test -z "$1" || test -z "$2" ; then echo "usage: ${0} srcdir destdir" >&2 exit 1 fi # Portability notes: # - Avoid set -e given its ambiguous interaction with subshells. # - Not all shells update $PWD as required by POSIX. # Use the pwd builtin instead. # - Command substitution strips all trailing newlines. # Preserve trailing newlines by appending a safety character and then # removing it with parameter substitution, along with the newline # appended by pwd itself. mkdir -p "$2" && destdir=`cd "$2" && pwd && echo x` && destdir=${destdir%??} && cd "$1" && srcdir=`pwd && echo x` && srcdir=${srcdir%??} && find . -type d -exec mkdir -p "${destdir}/{}" \; && find . -type f -exec ln -sf "${srcdir}/{}" "${destdir}/{}" \;