---
obj: application
website: https://rsync.samba.org
arch-wiki: https://wiki.archlinux.org/title/Rsync
repo: https://github.com/WayneD/rsync
---

# rsync
Rsync is an open-source tool that is used for synchronizing and transferring files between two locations. It is widely used by system administrators and developers for efficient and reliable file transfer.

## Usage
To use rsync:
```shell
rsync [options] source destination
```

Either `source` or `destination` can be a local folder or a remote path (`user@host:path`)


## Options
| option                | description                                 |
| --------------------- | ------------------------------------------- |
| --quiet, -q           | suppress non-error messages                 |
| --archive, -a         | archive mode                                |
| --recursive, -r       | recurse into directories                    |
| --update, -u          | skip files that are newer on the receiver   |
| --append              | append data onto shorter files              |
| --verbose, -v         | increase verbosity                          |
| --links, -l           | copy symlinks as symlinks                   |
| --perms, -p           | preserve permissions                        |
| --chmod=CHMOD         | affect file and/or directory permissions    |
| --owner, -o           | preserve owner (super-user only)            |
| --group, -g           | preserve group                              |
| --dry-run, -n         | perform a trial run with no changes made    |
| --one-file-system, -x | don't cross filesystem boundaries           |
| --rsh=COMMAND, -e     | specify the remote shell to use             |
| --delete              | delete extraneous files from dest dirs      |
| --remove-source-files | sender removes synchronized files (non-dir) |
| --compress, -z        | compress file data during the transfer      |
| --exclude=PATTERN     | exclude files matching PATTERN              |
| --exclude-from=FILE   | read exclude patterns from FILE             |
| --stats               | give some file-transfer stats               |
| --progress            | show progress during transfer               |
| --human-readable, -h  | output numbers in a human-readable format   |
| --log-file=FILE       | log what we're doing to the specified FILE  |
| --partial             | keep partially transferred files            |
| -P                    | same as --partial --progress                |
