Uploading and Downloading files

moving files between your personal computer and the Demography Lab servers is complicated only because there are so many simple ways of doing it.

Because all Demography Lab servers share the same filesystem -- that is your home directory, /90days, and all the various special places for data can be seen from all the servers -- it does not matter which server you upload to or download from. It's the same everywhere.

The many ways of transferring files


noMachine is the most flexible way of accessing the Demography Lab servers from a non Demography Lab machine. See noMachine if this is news.

In the upper right corner (generally) of the noMachine desktop there is an icon:

It is also possible, and remarkably cool to simply drag a file from your personal computer's desktop onto the window that holds the noMachine remote desktop.


You need to setup Dropbox of course, but once that is done, you can simply:

  cp filename ~/Dropbox
  (to copy a file into your dropbox cloud-synced directory)
  - or -

  cp ~/Dropbox/filename .
  (to copy a file from your drobox cloud-synced directory)

Or use the filemanager if you prefer. The folder called ~/Dropbox in your home directory is synced with the folder of the same name on your personal computer (cloud).


There are lots of applications for file transfer most of them have versions for both mac and windows, they all work by displaying your files on both your local remote machines and allowing your to click or drag from one to the other.

winSCP, filezilla, cyberduck, transmit, muComander, and forklift are a few.

With all of these, you need to run them on your personal computer and specify "nmx.demog.berkeley.edu" as the remote host.

Command line tools

If you believe simpler retro technology either builds character or is just cool, then you can and should make use of scp and sftp. These are venerable unix commands that are built into the mac as well.

  • scp transfers a single file and works a lot like cp only over the network it works best for uploading as you must know the precise name of the file you want to move:
       scp local-file userid@nmx.demog.berkeley.edu:where/you/want/it
       - or -
       scp userid@nmx.demog.berkeley.edu:path/to/file   <localfilename or '.' >
       you'll be prompted for your password and shown the progress of the transfer
  • sftp is for transferring several files or when you're not sure of the remote filename:
       sftp userid@nmx.demog.berkeley.edu
       prompt for password
       This will give you a shell like experience on the remote server, ls, cd and TAB-completion all work
       when you find what you are looking for 
       get filename   (to download)
       put filename   (to upload)
  • rsync is an extremely powerful command line copying tool that excels in fast transfer:
       rsync -av /path/to/source  user@foo:/path/to/target
  • rclone is rsync for the cloud. see rclone.org for excellent documentation:
       rclone config  # set up how to talk to a cloud account
       rclone  copy -vP /path/to/source  myCloud: