I have installed Bluetooth dongle software and with the help of commands (using a terminal), I want to send and receive files from a smartphone.

How can I pair my devices and send files over Bluetooth using Terminal?


Send files:

bluetooth-sendto --device=12:34:56:78:9A:BC filename

To know your device name (12:34:56:78:9A:BC), you can issue this command:

hcitool scan

Receive files:

Haven't found it yet, but will let you know if it can be done using terminal


it looks like it can't be done through terminal. Blueman seems to do the trick but it's in GUI

| improve this answer | |
  • I have "blueman-sendto" instead of "bluetooth-sendto". – scjorge May 8 '19 at 9:06

I tested this with Ubuntu Bionic Beaver (18.04) and Android Lollipop.

  1. Ubuntu. Install the needed packages:

    sudo apt install bluez bluez-tools

    bluez-tools come with the following tools: bt-adapter bt-agent bt-device bt-network

  2. Ubuntu. Turn on the visibility:

    bt-adapter --set Discoverable 1
  3. Smartphone. Scan for remote devices to ID your Ubuntu machine.

  4. Ubuntu. Prep for managing incoming requests interactively with:

  5. Pair devices:

    1. Smartphone. Initiate pairing request;

    2. Ubuntu. Accept the request from the bt-agent screen.

  6. Ubuntu. Send files to smartphone with:

    bt-obex -p [remote_mac] [file]

    where [remote_mac] is the mac address of the smartphone. For example:

    bt-obex -p F0:6B:CA:A2:C4:69 ~/book.pdf
  7. Receive files from your smartphone:

    1. Ubuntu First create a Bluetooth file (obex) server:

      bt-obex -s [path]

      [path] is where to download files. For example:

      bt-obex -s ~/Downloads
    2. Smartphone. Send the file;

    3. Ubuntu. Accept the request from the bt-agent screen.
| improve this answer | |
  • 1
    Still, the bt-obex command is non-interactive, asking to type 'y' for each file to be accepted, which can be annoying. However, as it is a command-line tool, you can create a long file yyy.txt containing only lines with the y letter, and then run: cat yyy.txt | bt-obex -s ~/Downloads. Your computer will accept all files over bluetooth without asking! – dominecf Aug 28 '19 at 20:03
  • 1
    Alternatively, you could use the yes command – vcapra1 Feb 3 at 13:38

This works on my computer:

bluedevil-sendfile -u /org/bluez/hci0/dev_<address with underscores instead of colons> -f <file_with_absolute_path>

For example:

bluedevil-sendfile -u /org/bluez/hci0/dev_00_FF_00_FF_00_FF -f /home/tux/test.pdf
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.