SCP taming: stop local silliness
Every day now and then, I get an scp command wrong. Scp is designed after commands like rcp and works totally fine for local-to-local file copy.
While this can (or could) be useful in some contexts, It's not what I like to do these days; very often, if either hosts is not remote, it's a typo on my part, and results in spurious "somebody@host.example.com" files somewhere in various directories on my disk.
So, what I like to do? I put a small script like this in my path before the actual scp executable in order to pre-check arguments, and prevent accidental local-only copies.
#!/bin/bash
ORIG="/usr/bin/scp"
for var in "$@"
do
if [[ $var = *":"* ]]; then
$ORIG "$@"
exit $?
fi
done
echo "ERROR: Missing colon. You need to pass at least one remote host specifier in source or dest"
exit 1