Are there any full featured console (command line) ftp clients?

I'm moving parts of a website from one host to another. One server has ssh shell access (and thus scp, sftp, etc.), the other only ftp.

My home computer is an Ubuntu desktop. What I have been doing till now is using Filezilla to download to my desktop, and then uploading to the new server from there. This is slow and inefficient, everything is transferred twice and my home network speed is limited, and has a monthly bandwidth quota besides. The two servers have a fast connection between them though. I'd rather just ssh into one server and retrieve the files I need directly.

So what I'm looking for a console ftp client which has feature set similar to Filezilla (I need to pick and choose what to transfer and what to leave behind). Does such a creature exist?

  • crazy idea: is it possible to have filezilla, or similar, connect to two remote servers at once? i.e. not show 'Local site' and 'Remote site' but 'Site A' and 'Site B'? and transfer direct between? – matt wilkie Nov 12 '10 at 2:05
  • It is possible if you use a FXP capable FTP server: en.wikipedia.org/wiki/File_eXchange_Protocol – João Pinto Nov 12 '10 at 9:23
  • It's worth considering a web-based FTP/SFTP client like Monsta FTP as you simply need some webspace (to host it) and a browser. Free to download at monstaftp.com (disclaimer: I'm involved with this project) – Daniel Williams Jul 21 '17 at 8:29

Check if Midnight Commander (mc) is installed. If so, you can do ftp from there.


To my mind, the most powerful command-line ftp client is undoubtly lftp.

  1. it allows one to use standard shell command over the ftp wire
  2. It provides up/down queue for long operations
  • +1 lftp is awesome. In addition, lftp really comes into its own when using as a non interactive client in shell scripts or backup scripts when ftp is your only option. – Richard Holloway Nov 12 '10 at 17:09
  • 1
    lftp does not work with all FTP servers that I have to deal with - yafc is the one I use it such cases: yafc-ftp.com – Lester Cheung Jul 2 '14 at 2:58
  • 1
    One more vote for lftp - especially for sftp I found it very good, using commands like open sftp://username@sftp_server_address. It's fast and simple. – Cosmin Saveanu Sep 3 '14 at 8:40
  • great suggestion; it works perfectly on mac os as well and it fully supports local ssh config out of the box (for sftp for example) – Riccardo Cossu Jun 1 '17 at 19:07

You could make life really easy for yourself using a fuse filessytem.

On the machine you can ssh into, install curlftpfs

sudo apt-get install curlftpfs

Then add yourself to group fuse

sudo usermod  -aG fuse <username>

Log out, and log back in again, for changes to take effect.

Make a directory for a mount point

mkdir ~/ftp

Then mount the ftp server as a local filesystem

curlftpfs ftp.server.com ~/ftp -o user=<ftp_username>

Enter the password when prompted.

You can then use the remote ftp servers files as if they appear on the local server. Allowing you to use cp, rsync etc without the hassle of handling ftp.

Read the man page for more information

Especially useful if you do a lot of this sort of thing.

  • Oh, and to unmount it again do fusermount -u ~/ftp – Richard Holloway Nov 12 '10 at 10:17

Just in case anyone still needs this :)

I was able to transfer a large website from a linux VM (from the SSH command line) to the Azure website cloud service DIRECTLY (via ftp) by using the ncftp client as guided here

Finally, remember to remove the ftp client from your vm afterwards.


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.