How to Transfer and Share Files Between Windows and Linux

By | March 7, 2022

Copying data from a Windows PC to Linux or in another direction can be confusing at first. After all, it was something that seemed simple, but turned out to be difficult. Actually, sharing files from Windows to Linux is easy, but only if you know how to do it.


Here are 5 Ways to Transfer Files from Windows to Linux

Transferring data between Windows and Linux operating systems is easier than you think. We’ve put together five ways for you to do this:

  • Share network folder
  • Transfer files by FTP
  • Copy files securely via SSH
  • Share data using sync software
  • Use shared folders on your Linux virtual machine

With each of these methods, you will be able to easily and in some cases, easily move files between operating systems.

Let’s take a look at them in turn and find out which one suits you best.

Share Network Folder Between Linux and Windows

The most obvious way to share files between Linux and Windows is to take advantage of network shares. This term refers to a folder on one PC that is available to users on another computer. On a Windows-only network this is easy to set up. Adding a Linux device complicates matters a bit, although this can be worked around.

Starting from the Windows machine, right-click the network connection icon in the system tray and select Open Network & internet Settings. Next, click on Sharing options and to activate the current profile

  • Enable network discovery
  • Enable file and printer sharing

Click Save changes to confirm, then browse to the folder containing the files you want to share. Right-click the folder, select Properties and go to the Sharing tab. Here, click Advanced Sharing, then check the Share this folder box.

You can manage access to folders via Permissions; this refers to local Windows users, not network devices.

Click OK to confirm the changes, then go to the Security tab in Properties. Configure this to reflect the settings in the previous Permissions box. You don’t need to do too much here as Windows 10 should include a group called Authenticated Users. It is used for remote access to your computer.

Again, click OK when you are done.

To find Windows shares from your Linux PC, simply open a file browser and select Network. From here, navigate to the Windows hosted folder, and start exchanging data.

Access Linux Share From Windows

To move data in another direction, you will need to install Samba on your Linux computer.

sudo apt install samba

Next, set a username for the samba share

smbpasswd -a username

You will be asked for the password for the new account (don’t call it “username”!).
Next, create a directory to share data with.

mkdir /home/[username]/Share

Next, edit the smb.conf file in your text editor:

sudo nano /etc/samba/smb.conf

Add the following to the end of the configuration file:

[Share]

path = /home/[username]/[folder_name]

available = yes

valid users = [username]

read only = no

browsable = yes

public = yes

writable = yes

Make the necessary changes according to your own needs, then press Ctrl + X to exit, tap Y to save. Next, restart Samba:

sudo service smbd restart

You can then access the share from Windows. Open File Explorer or your browser and enter the IP or hostname of the remote Linux device, followed by the folder name. In our example, this

\192.168.1.233Share

Copy Files via SSH From Windows to Linux

With SSH enabled on your Linux device, you can send data via the command line from one computer to another. For this to work, you’ll need to set up an SSH server on your Linux machine.
Thanks For Visit

Start by opening a terminal and updating and upgrading the OS.

sudo apt update
sudo apt upgrade

Once done, install the SSH server. OpenSSH servers are a good option.

sudo apt install openssh-server

Wait while it installs. To check at any time if the OpenSSH server is running, use

sudo service ssh status

To transfer data from Windows, use an SSH client like PuTTY. This requires the PSCP tool downloaded to your Windows system to run with PuTTY. Find them both on the PuTTY homepage.

Note that while PuTTY needs to install, PSCP won’t. However, it must be stored in the root of the C: drive or else it is set as an environment variable. You’ll also need to confirm the Linux device’s IP address. Check this in the box with

ifconfig

With the connection established, you can send data like this:

c:pscp c:somepathtoafile.txt user@remoteIP:homeusersomepathnewname.txt

You will be asked for the password for the Linux computer before the transfer begins.

Want to copy data from Linux to Windows in the same SSH session? This command will download the specified file to the current directory:

c:pscp user@remoteIP:homeusersomefile.txt

Note the only period at the end of this include or the transfer won’t work.

How to Transfer Files From Linux to Windows Using FTP

File transfer protocol (FTP) applications with SSH support can also be used. Transferring files via SFTP in a mouse-driven user interface is arguably easier than relying on typed commands.

Again, the SSH server must be running on a Linux machine before you start. You should also make sure you have installed an FTP application such as FileZilla, which has SFTP support.

To use this method, run FileZilla, then go to File > Site Manager. Create a New Site, taking care to set the Protocol to SFTP. Add the target IP address in Host, then username and password, set Logon Type to Normal.

Click Connect when ready, then use the FTP interface to drag and drop files between the two computers.

Share Files Between Linux and Windows With Resilio Sync

Another option you should consider is a file sync program. These are typically cross-platform and use encrypted keys to manage connections between devices.

All you need to do is install the app, nominate a sync folder, then generate a lock. Set this up on the second PC and your data will then sync. Two good options are available for this:

  • Resilio Sync: formerly known as BitTorrent Sync, Resilio is available on almost any platform you can think of. There is a paid version, but the free option is enough to sync two devices.
  • SyncThing: for Linux, Windows, macOS, and Android, this Resilio Sync alternative offers similar features without any paid components.

Creating and Mounting a VirtualBox Shared Folder on Linux

Many people don’t run separate Linux machines. Instead, it’s common to run Linux in a virtual machine (VM). But is there a way to transfer files between Windows and Linux when one is installed in the VM?

Luckily yes. With VirtualBox you can create virtual shared directories for data synchronization.

If you’re running Windows in a VM on Linux (or vice versa), VirtualBox is already set up for sharing. Make sure you have Guest Additions installed on your virtual machine before proceeding.

In the VirtualBox manager, select the VM and select Start > Headless Start (Or start the VM then go to Devices > Shared Folders). When the status shows that the machine is running, right-click the VM and select Settings > Shared Folders.

Here, select Machine Folder and then click the + symbol on the right (or right click and select Add Shared Folder). Browse to Folder Path, find the directory you want to use, specify a name (if necessary) then OK.

Use the Auto-mount checkbox if you want the share to be available whenever the VM is running. Click OK again to confirm and exit. When you reboot the VM, the share will be ready to exchange data between the host PC and the guest operating system

Hopefully with these few tips can help you but if you have a mac operating system see our article Easy Ways to Share Files Between Mac and Windows

Category: