Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallSome links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
rsync copies and synchronizes files locally or between computers. A basic command is rsync [OPTIONS] SOURCE DESTINATION; for remote transfers, it typically uses SSH. The examples below cover single files, directory trees, previews, remote push and pull, exclusions, bandwidth limits, and mirroring. Before a run that could delete data, use --dry-run and inspect the proposed changes.
Before you run an rsync command
Check that rsync is installed on the sending and receiving systems for a remote transfer, and confirm that the account you use can read the source and write to the destination. Options, permissions, shells, and installed versions can affect results, so check your local rsync --version and manpage when behavior matters. The examples below are documented command patterns, not claims that a transfer has been tested in your environment.
In each command, the first path is the source and the second is the destination. Reversing them reverses transfer direction. A remote path commonly takes the form user@host:/path/; an SSH connection and suitable authentication must already be available.
11 rsync command examples
1. Copy one file to a local directory
rsync -v ./report.txt ./archive/
This copies report.txt into the local archive directory. The -v option makes rsync print transfer activity. Make sure the destination directory exists or use an appropriate destination path for the layout you want.
#1 Best Overall
2. Synchronize a local directory tree in archive mode
rsync -av ./project/ /backup/project/
The -a option is archive mode: it combines recursion, symbolic links, permissions, modification times, group, owner, and device handling (-rlptgoD). It does not include ACLs, extended attributes, access times, creation times, or hard links. If those must be preserved, add the corresponding options—-A, -X, -U, -N, or -H—and confirm that the rsync builds and destination filesystem support what you need. Preserving owners or devices may require elevated privileges.
The trailing slash on ./project/ means the contents of that directory are the source. Without it, rsync treats the named directory itself as the source, which can produce a different destination layout. Decide which layout you intend before running a large copy.
3. Preview a directory sync without changing files
rsync -av -n ./project/ /backup/project/
-n is short for --dry-run. It performs a trial run without making the changes, and its output is mostly the same as a real run. Use it to check the proposed transfer and destination layout before proceeding.
4. Preview with itemized change details
rsync -avi ./project/ /backup/project/
-i requests an itemized change summary; -v adds verbosity. This is useful when you want to review which entries rsync proposes to change. Add -n as well if the run must remain a preview: rsync -avIn ./project/ /backup/project/.
5. Push a local directory to a remote host over SSH
rsync -av ./project/ user@host:/srv/project/
This sends the local directory contents to /srv/project/ on the remote host. Replace user, host, and the destination path with values you can access. SSH is rsync’s typical remote-shell transport; verify that the remote account can connect and write to the target directory.
6. Pull a remote directory to the local machine
rsync -av user@host:/srv/project/ ./project/
Here the remote path is the source and the local directory is the destination. This is useful for retrieving a remote tree. Check the destination layout and local free space before transferring a large directory.
7. Skip files that are newer at the destination
rsync -avu ./incoming/ /srv/archive/
The -u option skips an existing destination file when it is newer than the source. It is not a general “never overwrite” or conflict-protection switch: equal timestamps with different sizes may still lead to an update, and differences in file type affect decisions. If preserving destination data is important, preview the operation and review the output rather than assuming -u prevents every overwrite.
8. Limit transfer bandwidth
rsync -av --bwlimit=RATE ./media/ user@host:/srv/media/
--bwlimit sets a socket I/O bandwidth limit. Replace RATE with a value and units accepted by the manpage for your installed version. No fixed rate is prescribed here: select one that fits your connection and workload, then check the local documentation for how that build interprets the value.
9. Exclude files matching a pattern
rsync -av --exclude='*.tmp' ./project/ /backup/project/
Rank #3
This excludes entries matching the pattern from the transfer. The quotes keep many shells from expanding the wildcard before rsync receives it. Exclude patterns are matched against transfer paths, so verify the result against your actual directory structure with a dry run if the excluded set matters.
Recommended Free Tools
10. Mirror a directory and delete destination-only entries
rsync -av --delete -n ./site/ /backup/site/
--delete removes destination entries that are absent from the sending side, within the directories being synchronized. First inspect this dry run carefully. Remove -n only when you have confirmed that the source and destination are correct and that every proposed deletion is intended.
Deletion scope depends on what you send: pass the directory itself rather than shell-expanded individual files, and use recursion or a directory transfer so rsync can apply deletion behavior to the synchronized directories. Excluded files are normally protected from deletion unless the applicable delete-excluded or filter behavior is requested.
11. Start from the official per-user backup pattern
rsync -aiz . bkhost:backup/joe/
This is the rsync manpage’s example pattern for a daily per-user home-directory backup. It uses archive mode and itemized output; -z requests compression. Adapt the source, remote host, destination, and any scheduling to your system. Use a dry run and confirm the remote path before relying on a backup job.
Choose options by the job you need
| Need | Useful option or pattern | What to check |
|---|---|---|
| Copy a directory tree and retain common attributes | -a |
Archive mode does not include ACLs, extended attributes, access times, creation times, or hard links. |
| See transfer activity or proposed changes | -v, -i, -n |
Use -n for a no-change preview; add verbosity or itemized output to review it. |
| Skip newer destination files | -u |
This is a timestamp-based policy, not a universal no-overwrite guarantee. |
| Remove destination-only entries | --delete |
Preview first and confirm the directory scope; excluded-file behavior depends on filters. |
| Restrict transfer rate | --bwlimit=RATE |
Check accepted units and interpretation in your installed manpage. |
| Transfer between systems | user@host:/path/ |
Confirm SSH access, remote rsync availability, permissions, and the target path. |
Common problems and how to address them
The destination directory layout is not what you expected
Check the source path’s trailing slash. A source such as ./project/ sends its contents; naming ./project can result in the directory itself being placed under the destination. Use a dry run to inspect the paths before copying.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
SSH cannot connect or the remote path cannot be written
Check the username, host, SSH authentication, and whether the remote account can write to the destination. A remote rsync command also depends on rsync being available on the remote system. Resolve access problems before retrying the transfer.
Files you expected to preserve are not preserved
Confirm that archive mode is sufficient. Add -A for ACLs, -X for extended attributes, -H for hard links, or other relevant options for the properties you need. Privileges and filesystem support can also limit preservation, particularly for owners and devices.
A file was updated despite using -u
-u only skips an existing destination file that is newer than the source. It does not protect every file from replacement. Compare timestamps, sizes, and file types, and use a preview to understand the proposed behavior.
A mirror preview shows unexpected deletions
Do not remove -n. Confirm the sending directory, destination directory, source slash, recursion, and filters. Since --delete acts within synchronized directories, a mistaken path can make the preview misleading or dangerous.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →An exclusion does not match the entries you intended
Keep the pattern quoted so the shell passes it to rsync, then check how it matches paths relative to the transfer. Run with -n and inspect the result before using the pattern on important data.
Version and security notes
As of September 30, 2026, the rsync project reports version 3.5.1, released September 21, 2026. The project says it fixes regressions reported after 3.5.0 and adds protocol 33 for logical-block statistics. The project describes 3.5.0, released August 13, 2026, as a major security release fixing 33 security issues and encourages users to upgrade. Those release details do not establish which version is installed on your system or which protocol every build uses. Check rsync --version and your operating system’s package information before drawing conclusions about your installation.
Or skip the browser setup
Rsync is for file transfer, not website screenshots. If your task also involves capturing a web page, ScreenshotNeo offers a one-request screenshot API and an MCP server for AI agents.
See the ScreenshotNeo API documentation for options and response details.
Free tools Windows power users keep installed
One-click scans. No signup required.
Example cURL request:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Sign up free for 1,000 screenshots a month with no card.
Frequently Asked Questions
Does rsync only transfer changed parts of a file?
For an existing remote file, rsync’s remote-update protocol can send only data differences. That behavior does not mean every transfer is necessarily smaller or faster; the result depends on the files and transfer conditions.
Does rsync work for local-to-local transfers?
Yes. Both source and destination can be local paths, as in the directory examples above.
Is rsync freely available?
The rsync project describes the utility as freely available open-source software.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

