Preserve Permissions in rsync

Are you trying to preserve permissions in rsync?

This guide is for you.

File copying is about more than just content – the metadata for user ownership, permissions, and timestamps is often critical to retrieval and function.

Sometimes, after migration, it becomes a tedious task to compare and set the permissions of files/folders as in the source server.

To make this easy we can preserve the permissions while migrating using rsync.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to rsync to make files migration between servers.

How to preserve Permissions in rsync ?

rsync is a powerful file and folder synchronization tool in Linux.

The advantage of rsync is that instead of copying data blindly, it compares the source and destination directories so that only the difference between the two is sent through the network (or between volumes).

Before going to the commands for preserving permissions in rsync we will see some of the features of rsync.

Some features key features of rsync are:

1. We can update whole directory trees and filesystems.

2. It allows to optionally preserves symbolic links, hard links, file ownership, permissions, devices, and times.

3. In addition to this, it also does not requires any special privileges for installing.

4. Internal pipelining reduces latency for multiple files.

5. Can use rsh, ssh or direct sockets as the transport

6. It supports anonymous rsync which is ideal for mirroring.

Process to preserve permissions in rsync

In order to preserve permissions, we will use -p flag (–perms).

We can also use -a flag (–archive), which is an aggregation of -p and several other useful ones.

Archive mode consists of the following flags:

-r, --recursive recurse into directories

-l, --links Copy symlinks as symlinks

-p, --perms Preserve permissions

-t, --times Preserve times

-g, --group Preserve group

-o, --owner Preserve owner (super-user only)

-D, --devices --specials Preserve devices (super-user only) +files

rsync -a option preserves the permissions, ownership, timestamp of files and folders that are to be transferred using rsync.

To transfer a file or folder from source to destination using rsync, we use the format:

rsync source destination

To preserve the above-mentioned permissions, ownership, and timestamp we can use the following command:

rsync -avz source destination

This will synchronize the two folders or files and will also maintain the same timestamp as that of the source.

To test whether the rsync has been done right we can check the permission of files in a folder in the source destination using the following command:

ls -al

Rsync copies the numerical user id of the file, regardless if it exists on the target system.

[Need urgent assistance to use rsync? We can help you. ]


This article will guide you on how to use rsync to preserve permissions. 

Rsync, or Remote #Sync, is a free command-line tool that lets you transfer files and directories to local and remote destinations. #Rsync is used for mirroring, performing backups, or migrating data to other servers.

a = archive - means it preserves #permissions (owners, groups), times, symbolic links, and devices. Use of "/" at the end of path: When using "/" at the end of source, rsync will copy the content of the last folder.

To preserve permissions when files and folders are copied or moved, use the Xcopy.exe utility with the /O or the /X switch. 

The object's original permissions will be added to inheritable permissions in the new location.

To make rsync to preserve timestamps:

1. To overcome this, there is another option that you can specify in the rsync command that will preserve the timestamps during the synchronization process. 

2. Without preserving the timestamp, the files will display the modification date and time as the time that the rsync command was run.

For Linux Tutorials

We create Linux HowTos and Tutorials for Sys Admins. Visit us on

Also for Tech related tips, Visit or General Technical tips on