Scroll to navigation

FLING(1) General Commands Manual FLING(1)


fling - quickly copy stdin over trusted network


fling [-vp] host port <input
fling [-vp] [user@]host:/path/to/output <input
fling [-vp] -r port >output
fling [-vp] -r port -ooutput


fling transfers data quickly over a trusted network. It does not encrypt the data. It tries to avoid copying data between kernel and userspace where it can; you will see the most improvement over other tools like netcat on systems with low memory bandwidth.

The input is read from stdin, which can be a file or a pipe.

fling needs to be installed on both ends of the transfer.


Receive instead of sending. The received file is written by default to stdout.
Be more verbose about what's happening.
Report progress during transfer.
Specify output file when receiving to be used instead of stdout.


You need to run fling on both ends of the transfer. Run it first on the receiver:

fling -r 12756 > file.dat

Alternatively, you can run this to set the output file with an option:

fling -r 12756 -o file.dat

And then on the sender:

fling 12756 < file.dat

You can also use the experimental support for ssh, and have fling run itself on the remote end, picking a port automatically. This avoids having to start it manually, in a different terminal. Note that the actual transfer is insecure and doesn't go via ssh.

fling < data



Name of command on the remote end for fling itself. Should include full path if not found via PATH.


Name of command locally to use ssh. Defaults to "ssh" if not set.


The SSH support in fling is experimental. It may have bugs.

Note that ssh is only used to set up the connection between the sending fling and the receiving fling. The actual connection through which data is transferred is still a separate cleartext connection.

You should not use fling if you mind that data is transferred over an unencrypted channel, or that an attacker may modify data as it is transferred. fling aims to be fast, not secure.