Skip to content

ragkousism/bcp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Broadcast Copy

Any easy way to copy files between terminals or computers on a local network.

Note: bcp currently assumes a trusted network, use with caution

Compiling

make or gcc -D_FILE_OFFSET_BITS=64 -o bcp bcp.c

Installation

$ make install

One line install:

$ bash -c "mkdir /tmp/bcp && cd /tmp/bcp && curl -L# https://github.com/jgallen23/bcp/archive/master.tar.gz | tar zx --strip 1 && make install"

In OSX, you can use @gil's homebrew solution: https://github.com/gil/homebrew-bcp

Usage

To make file availabe for copying:

$ ./bcp filename

To receive the file:

$ ./bcp

Example

Sender

diginux@heisenberg:~/code/bcp/test$ ./bcp awesome.jpg
Listening for request..
Sending file to: 192.168.2.12:10789
Sent 107545
File sent.

Recipient

Jordans-MacBook-Pro:bcp diginux$ ./bcp
Requesting file..
Incoming connection from: 192.168.2.12
Receive: 107545
File received: awesome.jpg

Useful bash commands

bcpdir: to send directories

# zip directory to /tmp and bcp it
bcpdir() {

	curr_time=`date +%s`
	file=/tmp/files_$curr_time.zip

	if [[ -d $1 ]]; then

		# dir	
		cd $1
		zip -r -9 $2 $file .

	elif [[ -f $1 ]]; then

		# single file
		file_dir=`dirname $1`
		file_name=`basename $1`
		cd $file_dir
		zip -r -9 $2 $file $file_name

	else
		echo "$1 is not valid!"
		exit 1	
	fi

	bcp $file
	rm $file
	cd -
}

bcppass: to send files/directories protected with password

# zip file/directory with password to /tmp and bcp it
bcppass() {
	bcpdir $1 -e
}

Alternatives:

Packages

No packages published

Languages

  • C 100.0%