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.