File Transfer Protocol (FTP) is a network protocol used for transferring files between a client and a server on a computer network. The very first FTP applications were made for the command line before GUI Operating Systems even became a thing and while there are several GUI FTP clients, developers still make CLI-based FTP clients for users who prefer using the old method.
Read Also: Best Command Line HTTP Clients for Linux
Here’s a list of the best command-line based FTP clients for Linux.
Linux Operating Systems ships with built-in FTP clients that you can easily access by entering the
ftp command in your terminal.
With FTP you can connect to servers anonymously (if this feature is enabled on the server) or using your user credentials, download/upload files between your local machine and connected servers, use aliases, etc.
Also, when using FTP for transferring files between computers, the connection is not secure and the data is not encrypted. For a secure data transfer, use sFTP (Secure File Transfer Protocol) or SCP (Secure Copy).
Read Also: How to Install, Configure and Secure FTP Server in CentOS 7 – [Comprehensive Guide]
LFTP is a free and open source command-line utility designed for several file transfer protocols (e.g. sftp, fish, torrent) on Unix and like Operating Systems.
It features bookmarks, job control, support for the readline library, a built-in mirror command, and support for multiple file transfers in parallel.
lftp is available to install from the default repositories using package manager as shown.
$ sudo apt install lftp [On Debian/Ubuntu] $ sudo yum install lftp [On CentOs/RHEL] $ sudo dnf install lftp [On Fedora]
NcFTP is a free, cross-platform FTP client and the first ever alternative to the standard FTP program developed to boasts ease of use and several feature and performance enhancements to FTP.
Its features include host redialing, background processing, auto-resume downloads, filename completion, progress meters, support for other utility programs such as ncftpput and ncftpget.
NcFTP is available to install from the default repositories using package manager as shown.
$ sudo apt install ncftp [On Debian/Ubuntu] $ sudo yum install ncftp [On CentOs/RHEL] $ sudo dnf install ncftp [On Fedora]
ctftp is a flexible FTP/FXP client that enables users to transfer large files securely and efficiently without using emails. It typically works in the command line but you can run it in a semi-GUI using ncurses.
Its features include an internal viewer that supports multiple encodings, skip-listing, remote commands for UDP call commands such as race, download, fxp, raw, idle, etc., and data encryption with AES-256, among others.
Yafc is an open source FTP client designed as a replacement for the standard FTP program on Linux systems with support for POSIX-compliant systems.
It is completely free with a rich features list that includes recursive get/put/fxp/ls/rm, queuing, tab completion, aliases, and support for SSH2 and proxy.
Yafc is available to install from the default repositories using package manager as shown.
$ sudo apt install yafc [On Debian/Ubuntu] $ sudo yum install yafc [On CentOs/RHEL] $ sudo dnf install yafc [On Fedora]
Do you have any experience with these command line FTP clients? Or do you know alternatives that should be on this list? Feel free to drop your comments below.
5 thoughts on “Best Command-Line FTP Clients for Linux”
midnight commander, F9 -> FTP, SFTP, SSH
I highly recommend to consider reviewing and adding Wget and cURL to your list .They are multi platform good tools that can run on both Linux, MAC and also Windows.
I covered them in this article.
Those both stuck and can’t mirror a directory tree like LFTP can do.
for wget, you can use its partner “wput“, but wget can’t itself upload.