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

2. LFTP

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.

If this article helped, with someone on your team.

TecMint Weekly Newsletter
Get the Learn Linux 7 Days Crash Course free when you join 34,000+ Linux professionals reading every Thursday.
Check your email for a magic link to get started.
Something went wrong. Please try again.
TecMint has been free for 14 years. Help keep it that way.
Google AI Overviews and tools like ChatGPT have cut into search traffic for independent tech sites like TecMint. Running this site costs over $2,000 every month for hosting, infrastructure, and paying authors to keep the content accurate and tested.

If this article helped you solve a problem, consider buying a coffee. It helps keep TecMint free, supports the authors, and keeps the project going.
☕ Buy Me a Coffee
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.

5 Comments

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.

    Reply

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.

Free Course
Get a free Linux course before you go.
Subscribe to TecMint Weekly and get the Learn Linux 7 Days Crash Course free. Read by 34,000+ Linux professionals every Thursday.
Something went wrong. Please try again.
Check your email for a magic link to get started.