In my introduction to Mac world, I have also been experimenting with a RaspberryPiRaspberry Pi and the Raspbian OS.  The Raspberry Pi is a neat device for anyone to learn on, and it tricks you into forcing yourself into learning how to use the command line rather than relying on a GUI interface.  It also has the advantage of the entire OS being on an SD card, meaning if I screw up something too badly I can simply format the card and start over in under 15 minutes.

Anyway, today I got a Gertboard for my Pi.  A Gertboard is an add-on GPIO expansion board for the Raspberry Pi that comes with lots of fun components such as LEDs, a motor controller, and an Atmel AVR microcontroller.  Of course I was excited an wanted to hook it up right away and make it start doing stuff (like lighting up the LED’s – yeah, I am still on a GPIO beginner level).  I got it set up and was to start testing by downloading some sample code to the Pi.  I had downloaded the sample code onto my PC, but I then realized that I did not know how to get the files from my PC to the Pi.

It turns out, getting files from a PC or Mac to a Pi (or other Linux-based OS) is not so bad if you use a GUI sftp client or scp command line.  Simply us a file transfer client to get the files from one computer to the other.  Below are instructions on how to transfer files from one computer onto a Raspberry Pi.

One note, you will need to know the IP address of your Pi (or Linux computer) before starting.  To get its IP address, in the command window type in /sbin/ifconfig.

Transfer a File from Linux/Mac to a Raspberry Pi

Open up a Terminal window.  Type in the following command:

scp /destination/filename [email protected]:destination/path

Alternatively, you can use your Pi’s IP address to navigate to the Pi/Linux box, so for instance would type in:
scp /destination/filename [email protected]:destination/path (substituting raspberrypi.local for your device’s IP address)

For example, say I want to transfer a document that is in the Documents folder on my Mac, called “filetransfertest”, into a folder on my Raspberry Pi’s desktop that is called “alifolder”.  Here is what I would type:

scp ~/Documents/filetransfertest.rtf [email protected]:~Destkop/alifolder

Hit Enter when done with the command line.  You will be prompted to enter in your Pi’s password.  Your file will then be transferred.

One note – Linux does not like file names to have spaces between them.  So, what if you have a file that has a space in the name?  You can either rename the file on your Mac to have no spaces between words, or you can comment out the space.  Here is how you would comment out the space on a file named “Test File.rtf”:

scp ~/Documents/Test\ File.rtf [email protected]:~/Desktop/alifolder

You essentially add a \ character before the space.  (If you are doing this via SSH, you will want to add \\\ before the space, or in other words, you will need to comment out the comment first).

Transfer a File from a Windows PC to a Raspberry Pi

Start by downloading FileZilla onto your Windows PC (other file transfer clients work too, but I am using FileZilla as it is a free download and easy to use).

Open up FileZilla.  Fill in the following fields:
Host: sftp://XXX.XXX.XXX.XXX (your IP address here)
Username: (the username of your Pi )
Password: (the password of your Pi)
Port: 22
Hit Connect

You will then see a list of files located in the below boxes.  The files in the leftmost pane are the files/directories on your local PC.  The files on the rightmost pane are the files/directories on your Pi.  Locate the file you want transferred on the left/PC side, then drag and drop it into the desired directory on the right/Pi side.

That is it – the file should now be on your Pi.

Transfer a File from a Mac to a Raspberry Pi

Start by downloading Cyberduck onto your Mac (also available through the App Store).  Other transfer clients work too, but I am using Cyberduck as it is a free download and easy to use.

Open up Cyberduck and click on File – Open Connection.
Choose SFTP from the dropdown box, then fill out the fields as follows:
Server: (your IP address)
Port: 22
Username: (the username of your Pi)
Password: (the password of your Pi)
Uncheck the box for Anonymous Login.
Hit Connect

A box will come up that shows the files/directories currently on your Pi.  Locate the file you want to transfer on your Mac, then drag and drop it into the desired directory in the SFTP Cyberduck window.  Done!


Comments

  1. midi -

    If I try to copy a file from my Mac to a Raspberry with
    scp /destination/filename [email protected]:destination/path

    I get the the error message: destination/path: No such file or directory
    How can I solve this? The folder does exist on the Raspberry.

    Reply
    • Thomas -

      Just to make sure, you are changing the command above to match your system? The scp command should really be scp /sourcepath/file [email protected]:/destination. So for example, I want to copy something from my mac that is in my ‘Downloads’ directory under my home profile to my home directory on the pi, I would use: scp /Users/thomasloughlin/Downloads/coolfile.jpg [email protected]:/home/pi.

      Reply
  2. Arrow.Eng.Admin -

    Hello,

    I am having problems creating directories in the raspberry pi. My external hard disk is mounted on /mnt/library and I suspect i have write permissions wrong somewhere. I have tried chmod 777 -R on the directory but it hasn’t worked for me.

    Do you have an idea of how I may be able to solve this problem?

    Thanks!

    Reply

Leave a Reply