6 Best Command-Line FTP Clients for Linux Users

FTP (File Transfer Protocol) is a network protocol used for transferring files between a client and a server on a computer network.

In the early days, FTP applications were initially designed for the command line, predating the widespread adoption of GUI (Graphical User Interface) Operating Systems.

Although numerous GUI-based FTP clients have emerged over time, developers continue to create CLI-based (Command-Line Interface) FTP clients to cater to users who favor the traditional method.”

Here’s a list of the best command-line-based FTP clients for Linux.

1. FTP

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 use 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).

Verify FTP Connection
Verify FTP Connection


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 the package manager as shown.

$ sudo apt install lftp         [On Debian, Ubuntu and Mint]
$ sudo yum install lftp         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/lftp  [On Gentoo Linux]
$ sudo apk add lftp             [On Alpine Linux]
$ sudo pacman -S lftp           [On Arch Linux]
$ sudo zypper install lftp      [On OpenSUSE]    

3. NcFTP

NcFTP is a free, cross-platform FTP client and the first-ever alternative to the standard FTP program developed to boast 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, and support for other utility programs such as ncftpput and ncftpget.

NcFTP is available to install from the default repositories using the package manager as shown.

$ sudo apt install ncftp         [On Debian, Ubuntu and Mint]
$ sudo yum install ncftp         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/ncftp  [On Gentoo Linux]
$ sudo apk add ncftp             [On Alpine Linux]
$ sudo pacman -S ncftp           [On Arch Linux]
$ sudo zypper install ncftp      [On OpenSUSE]    

4. cbftp

cbftp 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.

5. Yafc

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 the package manager as shown.

$ sudo apt install yafc         [On Debian, Ubuntu and Mint]
$ sudo yum install yafc         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
$ sudo emerge -a sys-apps/yafc  [On Gentoo Linux]
$ sudo apk add yafc             [On Alpine Linux]
$ sudo pacman -S yafc           [On Arch Linux]
$ sudo zypper install yafc      [On OpenSUSE]    

6. Wget

wget is primarily designed for downloading files but also supports FTP and FTPS. It is known for its simplicity and ability to download recursively.

To use wget to download files from an FTP server, you can simply specify the username, password, and FTP URL of the file you want to download.

$ wget ftp://username:password@ftp_server_address/path/to/file

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.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Martins D. Okoi
Martins Divine Okoi is a graduate of Computer Science with a passion for Linux and the Open Source community. He works as a Graphic Designer, Web Developer, and programmer.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.


Leave a Reply
  1. 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.


Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.