Linux and Unix rsync command
Quick links
About rsync
Syntax
Examples
Related commands
Linux and Unix main page
About rsync
Faster, flexible replacement for rcp.
Syntax
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... SRC [SRC]... DEST
rsync
[OPTION]... [USER@]HOST::SRC [DEST]
rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC
[DEST]
rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
| -v, --verbose |
increase verbosity |
| -q, --quiet |
suppress non-error messages |
| -c, --checksum |
skip based on checksum, not mod-time & size |
| -a, --archive |
archive mode; same as -rlptgoD (no -H) |
| -r, --recursive |
recurse into directories |
| -R, --relative |
use relative path names
| --no-relative |
turn off --relative |
| --no-implied-dirs |
don't send implied dirs with -R |
|
| -b, --backup |
make backups (see --suffix & --backup-dir)
| --backup-dir=DIR |
make backups into hierarchy based in DIR |
| --suffix=SUFFIX |
backup suffix (default ~ w/o --backup-dir) |
|
| -u, --update |
skip files that are newer on the receiver
| --inplace |
update destination files in-place |
|
| -d, --dirs |
transfer directories without recursing |
| -l, --links |
copy symlinks as symlinks |
| -L, --copy-links |
transform symlink into referent file/dir
| --copy-unsafe-links |
only "unsafe" symlinks are transformed |
| --safe-links |
ignore symlinks that point outside the tree |
|
| -H, --hard-links |
preserve hard links |
| -K, --keep-dirlinks |
treat symlinked dir on receiver as dir |
| -p, --perms |
preserve permissions |
| -o, --owner |
preserve owner (root only) |
| -g, --group |
preserve group |
| -D, --devices |
preserve devices (root only) |
| -t, --times |
preserve times |
| -O, --omit-dir-times |
omit directories when preserving times |
| -S, --sparse |
handle sparse files efficiently |
| -n, --dry-run |
show what would have been transferred |
|
-W, --whole-file copy files whole (without rsync algorithm)
| --no-whole-file |
always use incremental rsync algorithm |
|
| -x, --one-file-system |
don't cross filesystem boundaries |
| -B, --block-size=SIZE |
force a fixed checksum block-size |
| -e, --rsh=COMMAND |
specify the remote shell to use
| --rsync-path=PROGRAM |
specify the rsync to run on remote machine |
| --existing |
only update files that already exist |
| --ignore-existing |
ignore files that already exist on receiver |
| --remove-sent-files |
sent files/symlinks are removed from sender |
| --del |
an alias for --delete-during |
| --delete |
delete files that don't exist on sender |
| --delete-before |
receiver deletes before transfer (default) |
| --delete-during |
receiver deletes during xfer, not before |
| --delete-after |
receiver deletes after transfer, not before |
| --delete-excluded |
also delete excluded files on receiver |
| --ignore-errors |
delete even if there are I/O errors |
| --force |
force deletion of dirs even if not empty |
| --max-delete=NUM |
don't delete more than NUM files |
| --min-size=SIZE |
don't transfer any file smaller than SIZE |
| --max-size=SIZE |
don't transfer any file larger than SIZE |
| --partial |
keep partially transferred files |
| --partial-dir=DIR |
put a partially transferred file into DIR |
| --delay-updates |
put all updated files into place at end |
| --numeric-ids |
don't map uid/gid values by user/group name |
| --timeout=TIME |
set I/O timeout in seconds |
|
| -I, --ignore-times |
don't skip files that match size and time
| --size-only |
skip files that match in size |
| --modify-window=NUM |
compare mod-times with reduced accuracy |
|
| -T, --temp-dir=DIR |
create temporary files in directory DIR |
| -y, --fuzzy |
find similar file for basis if no dest file
| --compare-dest=DIR |
also compare received files relative to DIR |
| --copy-dest=DIR |
... and include copies of unchanged files |
| --link-dest=DIR |
hardlink to files in DIR when unchanged |
|
| -z, --compress |
compress file data during the transfer |
| -C, --cvs-exclude |
auto-ignore files in the same way CVS does |
| -f, --filter=RULE |
add a file-filtering RULE |
| -F |
same as --filter='dir-merge /.rsync-filter' repeated: --filter='- .rsync-filter'
| --exclude=PATTERN |
exclude files matching PATTERN |
| --exclude-from=FILE |
read exclude patterns from FILE |
| --include=PATTERN |
don't exclude files matching PATTERN |
| --include-from=FILE |
read include patterns from FILE |
| --files-from=FILE |
read list of source-file names from FILE |
|
| -0, --from0 |
all *from file lists are delimited by nulls
| --version |
print version number |
| --port=PORT |
specify double-colon alternate port number |
| --blocking-io |
use blocking I/O for the remote shell |
| --no-blocking-io |
turn off blocking I/O when it is default |
| --stats |
give some file-transfer stats |
| --progress |
show progress during transfer |
|
| -P |
same as --partial --progress |
| -i, --itemize-changes |
output a change-summary for all updates
| --log-format=FORMAT |
log file-transfers using specified format |
| --password-file=FILE |
read password from FILE |
| --list-only |
list the files instead of copying them |
| --bwlimit=KBPS |
limit I/O bandwidth; KBytes per second |
| --write-batch=FILE |
write a batched update to FILE |
| --read-batch=FILE |
read a batched update from FILE |
| --protocol=NUM |
force an older protocol version to be used |
| --checksum-seed=NUM |
set block/file checksum seed (advanced) |
|
| -4, --ipv4 |
prefer IPv4 |
| -6, --ipv6 |
prefer IPv6 |
| -h, --help |
show this help screen |
Rsync can also be run as a daemon, in which case the following options are accepted:
| --daemon |
run as an rsync daemon |
| --address=ADDRESS |
bind to the specified address |
| --bwlimit=KBPS |
limit I/O bandwidth; KBytes per second |
| --config=FILE |
specify alternate rsyncd.conf file |
| --no-detach |
do not detach from the parent |
| --port=PORT |
listen on alternate port number |
| -v, --verbose |
increase verbosity |
| -4, --ipv4 |
prefer IPv4 |
| -6, --ipv6 |
prefer IPv6 |
| -h, --help |
show this help screen |
Examples
rsync -t *.htm hope:public_html/
The above example would use rsync to transfer all .htm files to the public_html directory on the hope computer.
Related commands
rcp