I have several Linux machines on my network, each serving a different purpose. I frequently need to transfer files back and forth between them, and I’d rather not do so via a cloud service, email, or USB drive. Instead, I prefer to go the most efficient and reliable route, which often means installing software specific to that purpose.
Also: The 7 biggest practical differences between Windows and Linux for users
Because this is Linux, you can be certain that there are multiple solutions to this problem. I will highlight five of them: three command-line solutions and two GUI solutions. All five are reliable and effective.
Let’s get to it.
1. Samba
Samba is my usual go-to for sharing files between devices. What I like about Samba is that it doesn’t matter if you’re sharing between Linux machines, Linux and MacOS, or Linux and Windows… it all works. Even better, once you have Samba up and running, you can copy and manage files from within your GUI file manager, so the only command line work you’ll do is set it up. As a bonus, Samba makes it easy to share printers as well. Samba does take some upfront effort to install and configure, but once you get it up and running, it’ll work like a champ.
Also: 6 Linux security commands every new user should know
If you’re not already up to speed on Samba, make sure to give my article, How to share folders to your network from Linux a read. Once you’ve followed the steps in the piece, you’ll have a working Samba share that can be accessed across your LAN from any device.
Samba is free to install and use.
2. FTP
If you’ve been around long enough, you’ve probably heard of or used FTP or File Transfer Protocol. This protocol allows you to push and pull files to and from your Linux machines using the command line or a GUI app such as FileZilla. Certain file managers (such as GNOME Files — aka Nautilus) make it easy to connect to an FTP server using an address like ftp://ADDRESS (where ADDRESS is the IP address of the FTP server).
Also: The best Linux laptops: Expert tested
Like Samba, FTP requires the installation and configuration of a server that will make specific directories available to specific users. If given the choice, I’ll choose Samba over FTP, but if I have to transfer larger files, FTP is the better option because of its speed (as Samba file transfer rates cannot match that of FTP). There are several implementations of FTP servers for Linux, such as ProFTP, Pure-FTPd, vsftpd, and bftpd, each of which is free to install and use.
3. SSH
SSH includes a handy command for transferring files to and from a Linux machine called scp (for secure copy). The thing I like most about scp is that it’s more secure than Samba or FTP. How? Well, SSH is secure by design, and the scp command benefits from that security.
At first blush, the scp can seem confusing but it’s really not all that challenging (especially if you already know how to use SSH). Essentially, the command looks like this: scp /path/to/file USER@192.168.1.30:/home/USER (Where USER is your remote username). You can read more about using scp in my piece, How to use the scp command in Linux.
4. Warpinator
We now get into the world of GUIs and there’s no better GUI app for sharing files between Linux machines than Warpinator. How Warpinator works is simple: You install the app on any Linux machine for which you want to transfer files, open the app, wait for it to detect any machine that also has Warpinator installed, and you’re ready to transfer.
Also: Linux market share hit its highest point ever last month
When you do transfer a file from Machine A to Machine B, Machine B has to accept the transfer. Until the transfer is accepted on Machine B, it’ll wait in a holding queue. There is also a version of Warpinator for both MacOS and Windows, so you aren’t limited to only Linux machines with this app.
Like FTP, Warpinator is faster than Samba at transferring larger files. With the easy installation and setup, Warpinator is a great option for those who don’t want to deal with complicated configurations. Warpinator can be installed for free using your distribution’s package manager or via Flatpak.
5. KDE Connect
KDE Connect makes it very easy to send and receive files, not just between Linux machines but also from Linux to Android and Android to Linux. And if you don’t use the Plasma desktop, there’s also GSConnect, which is the GNOME implementation of the app/service. GSConnect and KDE Connect also include other features, such as the ability to run commands on connected machines and even check notifications.
You can configure the “Save files to” directory in KDE Connect but you can only use one directory for this process. If you need to be able to send/receive files to multiple directories, your best bet would be either Samba, FTP, or scp. Both KDE Connect and GSConnect are free. KDE Connect is typically installed by default with the Plasma Desktop and GSConnect can be installed (using Firefox) from the GNOME extensions site.
Also: Linus Torvalds talks AI, Rust adoption, and why the Linux kernel is ‘the only thing that matters’
Any of these options allows you to share/send files to and from a Linux machine on your local network. Give one (or more) of them a try and see if it doesn’t make your day a bit easier.
Open Source