$ no flags memorized. no mistakes.
Rynctl is a free rsync command generator for Linux, macOS, and Unix systems. Select your flags, set your source and destination paths, configure SSH for remote transfers, add exclusions and bandwidth limits — then copy your production-ready rsync command in one click. No account required.
Fill in the fields above and click Generate.
| Token | Type | Description |
|---|
$ common patterns — click any command to copy it
$ the algorithm, the rules, and the flags that matter
rsync never copies a file blindly. It first compares the source and destination using checksums over fixed-size blocks. Only the blocks that differ are sent across the wire. For a 1 GB file with a one-line change, rsync may transfer just a few kilobytes — this is the property that makes it uniquely suited to incremental backups and slow or expensive links.
The single most common rsync mistake. /src/docs/ (with a trailing slash) means "sync the contents of docs" — so files land directly inside the destination. /src/docs (no slash) means "sync the docs folder itself" — so rsync creates a docs/ subdirectory inside the destination. When in doubt, add the trailing slash on the source.
-a actually doesArchive mode (-a) is shorthand for -rlptgoD — it enables recursive traversal, preserves symbolic links, timestamps, permissions, group ownership, owner identity, and device files in a single flag. It does not preserve hard links (-H) or ACLs (-A), and it does not compress (-z). Those require separate flags if you need them.
--delete is dangerousWithout --delete, rsync is additive — it copies new and changed files but never removes anything from the destination. With it, rsync turns the destination into an exact mirror: any file at the destination that no longer exists at the source is permanently deleted. Always run a --dry-run (-n) first to preview what would be removed before committing.
-e flagWhen syncing to or from a remote machine, rsync delegates the transport layer to SSH via -e 'ssh'. You can pass any SSH option inside that quoted argument — -p 2222 for a non-standard port, -i ~/.ssh/id_backup for a specific key, or -o StrictHostKeyChecking=no for automated scripts. The remote path uses the user@host:/path format.
--bwlimit=N caps throughput at N kilobytes per second, preventing rsync from saturating a shared link during business hours. Pair it with --partial so interrupted transfers resume from where they left off rather than restarting from the beginning — essential for multi-gigabyte jobs over unstable connections.