diff options
Diffstat (limited to 'cpflat.sh')
| -rwxr-xr-x | cpflat.sh | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/cpflat.sh b/cpflat.sh new file mode 100755 index 0000000..0092ea4 --- /dev/null +++ b/cpflat.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +IFS=' +' +_=$(basename $0) + +if [ "x$1" == "x-r" ] ; then + RENAME=y + shift +fi + +if [ -z "$2" ] ; then + echo $_: usage $_ [-r] scp_destination extension + exit 1 +fi + +DEST=$1 +EXT=$2 + +flist=$(find . -type f -iname "*.$EXT") + +for i in $flist ; do + dir=$(dirname "$i") + last_dir=$(basename "$dir") + + if [ -z "$last_dir" ] ; then + last_dir=$dir + fi + + fname=$(basename "$i") + + if [ "$RENAME" ] ; then + fname="$last_dir.$EXT" + fi + + if ! scp "$i" "$DEST/$fname" ; then + echo $_: Copy failed + exit 1 + fi +done |
