Bart Simons

Bart Simons


Thoughts, stories and ideas.

Bart Simons
Author

Share


Tags


Twitter


Quickest way to transfer files from your terminal

Do you often use the SCP command to transfer files from your computer to a remote server? This little code snippet may come to good use for you: function push {…

Bart SimonsBart Simons

Do you often use the SCP command to transfer files from your computer to a remote server? This little code snippet may come to good use for you:

function push {
	if [[ $1 == "config" ]]; then
		if [[ $# == 1 ]]; then
			echo "Usage:   push config username hostname destinationpath optionalkeyfile"
			echo "Example: push config root 1.2.3.4 /root/ ~/Documents/SSHKeys/server.key"
		elif [[ $# == 2 ]] || [[ $# == 3 ]]; then
			echo "Too few arguments were specified, run 'push config' for help."
		elif [[ $# == 4 ]]; then
			PUSH_ISCONFIGURED=1
			PUSH_USERNAME=$2
			PUSH_HOST=$3
			PUSH_DESTINATION=$4
		elif [[ $# == 5 ]]; then
			PUSH_ISCONFIGURED=1
			PUSH_USERNAME=$2
			PUSH_HOST=$3
			PUSH_DESTINATION=$4
			PUSH_KEYFILE=$5
		fi
	elif [[ $# == 0 ]]; then
		if [[ $PUSH_ISCONFIGURED == 1 ]] && [[ ! -z $PUSH_KEYFILE ]]; then
			scp -ri $PUSH_KEYFILE . $PUSH_USERNAME@$PUSH_HOST:$PUSH_DESTINATION
		elif [[ $PUSH_ISCONFIGURED == 1 ]] && [[ -z $PUSH_KEYFILE ]]; then
			scp -r . $PUSH_USERNAME@$PUSH_HOST:$PUSH_DESTINATION
		elif [[ -z $PUSH_ISCONFIGURED ]]; then
			echo "Usage:   push config username hostname destinationpath optionalkeyfile"
			echo "Example: push config root 1.2.3.4 /root/ ~/Documents/SSHKeys/server.key"
		fi
	fi
}

All I have to do now to upload files is using push config to setup connection parameters, and push in my code directory to quickly push files.

A nice little time-saving code snippet if you use the scp command often.

You can put it in your ~/.zshrc file if you use ZSH, or in ~/.bashrc if you use Bash as your shell.

Bart Simons
Author

Bart Simons

Comments