#!/usr/bin/env bash # This script can be used as an rsync command-line filter that strips a single # trailing slash from each arg. That treats "src/" the same as "src", thus # you need to use "src/." or "src//" for just the contents of the "src" dir. # (Note that command-line dir-excludes would need to use "excl//" too.) # # To use this, name it something like "rs", put it somewhere in your path, and # then use "rs" in place of "rsync" when you are typing your copy commands. REAL_RSYNC=/usr/bin/rsync args=() for arg in "${@}"; do if [[ "$arg" == --server ]]; then exec $REAL_RSYNC "${@}" exit $? # Not reached fi if [[ "$arg" == / ]]; then args=("${args[@]}" /) else args=("${args[@]}" "${arg%/}") fi done exec $REAL_RSYNC "${args[@]}"