17

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?

3
  • 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? Nov 12, 2010 at 2:05
  • It is possible if you use a FXP capable FTP server: en.wikipedia.org/wiki/File_eXchange_Protocol Nov 12, 2010 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) Jul 21, 2017 at 8:29

4 Answers 4

22

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
4
  • +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. Nov 12, 2010 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 Jul 2, 2014 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. Sep 3, 2014 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) Jun 1, 2017 at 19:07
20

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

1
  • Be aware mc does not work with an IIS FTP server per here
    – davetapley
    Oct 1, 2022 at 23:57
16

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.

1
  • Oh, and to unmount it again do fusermount -u ~/ftp Nov 12, 2010 at 10:17
1

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.

cheers.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .