How to use rsync command in Linux?


The rsync (remote synchronization) is a command used on Unix-like systems for copying and synchronizing files and directories between two machines. It uses the delta transfer algorithm in which first time it copies the whole file or a directory from source to the destination computer, next time it copies only the changed blocks and byte to the destination.

In this article, you will see the usage of rsync command along with some examples.

How to install rsync in a Linux system

In most of the distribution, it comes preinstalled. If it is not in your system then on the basis of distribution, use one of the given commands in your system.

In Ubuntu/ Linux Mint/ Debian, use –

sudo apt install rsync

If you are using CentOS/ RHEL then use –

sudo yum install rsync

For Arch Linux or Manjaro, use –

sudo pacman -S rsync

Once it gets installed you can verify the installation by using –

rsync --version

How to use rsync command in Linux

The basic syntax of using rsync command in Linux is given below.

rsync [Options] Source Destination

Where you can find a detailed list of options on rsync command man page. The source is the machine or host from which the file or directory is to be copied or synced and the destination is the location where synchronization will take place.

Usage of rsync command in Linux

The examples and use cases of the Linux rsync command are given below.

Copy/Sync file or directory locally

The most basic use of rsync command is to copy files or directories from one location to another location in a Local system. You can see the example below.

rsync -a ~/Downloads/eclipse-inst-jre-linux64.tar.gz /home/lalit

Here eclipse file will get copied from the Downloads directory to /home/lalit. You can see the output of this command in the given image.

Optionally you can add the --progress option with this command to see the progress.

To copy a directory locally from one location to another use –

rsync -a ~/Downloads/eclipse-installer /home/lalit

In the above example directory, eclipse-installer will get copied from /Downloads to /home/lalit If the destination directory does not exist this command will create a new directory at the given location.

Copy/Sync file or directory from local to the remote machine

To copy or sync a file from your system to a remote system you need to use the command like it is given below.

rsync -a ~/Downloads/eclipse-inst-jre-linux64.tar.gz lalit@192.168.122.175:/home/lalit/Desktop

This will copy/sync the eclipse file from the Download directory on the local system to /home/lalit/Desktop on the remote system.

Similarly, you can use the given command if you want to copy/sync a directory from the local to the remote system.

rsync -a ~/Downloads/eclipse-installer lalit@192.168.122.175:/home/lalit/Desktop

Copy/sync a file or directory from a remote to the local machine

If you want to copy/sync a file or directory from a remote system to your local machine then you need to use the command like it is given below.

sudo rsync -a lalit@192.168.122.175:/home/lalit/teamviewer_amd64.deb /opt/media/

To copy/sync some files or directories you may need to have root permission. This command will copy/sync teamviewer_amd64.deb file from remote to a local system.

You can see the output of the above command in the given image.

Similarly, you can mention the directory name instead of a filename to copy/sync a directory from the remote machine to a local computer.

Conclusion

The rsync command copies files or directories efficiently and it is faster than tools like scp (secure copy). Now if you have any queries then write us in the comments below.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.