FreeFileSync is an open-source folder comparison and synchronization program for Windows, macOS and Linux. It compares a source and a target folder and then copies, updates or deletes only the files that differ. This suits backups, mirrored work folders and two actively edited copies of the same data. The standard version is free for personal use; commercial use requires a Business Edition license.
Comparing two folders
Work in FreeFileSync starts with a folder pair: a left and a right folder. The program matches files by their relative path and sorts each pair into categories such as left only, right only, left newer, right newer, equal or different. The result appears as a grid with a tree overview, category filters and statistics. You can check the planned operations before the program writes anything.
Three comparison variants decide what counts as a difference:
- File time and size treats files as equal when modification time and size both match. This is the usual choice for backups. The program flags a file with the same date but a different size as a conflict.
- File content compares both files bit by bit. It is the slowest option, useful as a consistency check or when a phone or older FTP server does not keep reliable modification times.
- File size compares sizes only, for devices where times are unusable and content comparison would take too long.
Sync variants and directions
Mirror makes the right folder an exact copy of the left one, creating and deleting files as needed. Update adds and refreshes files on the target but never deletes, so files removed from the source stay in the backup. Two way sends creations, updates and deletions in both directions. Custom assigns a direction to each category individually.
Two-way sync relies on a database file, sync.ffs_db, written after the first run. It records the last synchronized state. This lets FreeFileSync tell whether a file missing on one side was deleted there or newly created on the other.
Moved and renamed files
The same database lets FreeFileSync detect moved or renamed files and repeat the move on the target instead of copying the file again. This needs a file system with stable file IDs and begins with the second sync of a folder pair. On SFTP and some FAT drives, the program falls back to copy and delete.
Filters and multiple folder pairs
FreeFileSync synchronizes an item only if it matches at least one include entry and no exclude entry. Entries are paths relative to the folder pair with * and ? wildcards; a trailing colon limits an entry to files and a trailing slash to folders. For example, \*\thumbs.db excludes every thumbs.db file at any depth. One configuration can hold several folder pairs, each with its own local filter and settings.
Keeping deleted and overwritten files
Deleted files can go to the recycle bin on local drives, but versioning gives more control. FreeFileSync moves every deleted or overwritten file into a chosen folder using one of three naming schemes:
- Replace keeps only the latest copy under the original name.
- Time stamp [File] appends a time stamp to each file name inside the original folder structure.
- Time stamp [Folder] places each run’s files in a time-stamped subfolder with their original names, so you can restore an earlier state by moving them back.
Drives, devices and remote storage
FreeFileSync works with local drives, network shares, MTP devices such as Android phones, iPhones and cameras, Google Drive, FTP/FTPS and SFTP. For SFTP, you can open more connections and channels to speed up folder reading, within the server’s limits. On Windows, FreeFileSync can copy files locked by other applications through a Volume Shadow Copy when it runs with administrator rights.
Batch jobs and scheduling
You can save any configuration as an .ffs_batch file that runs comparison and sync without the main window. Options minimize the progress dialog, close the summary automatically, and either ignore errors or cancel at the first one. This means an unattended job never waits for input. Each run writes a log. You can start batch files by double-click, Windows Task Scheduler, a macOS Calendar alarm or cron.
Real-time sync with RealTimeSync
FreeFileSync includes RealTimeSync, a companion tool that watches folders. When something changes, it runs a command, typically a batch job. It uses change notifications from the operating system instead of rescanning, and waits for a configurable idle period after the last change before starting. Dropping a batch file onto it fills in the folders and command. It can also react when a folder becomes available, such as an inserted USB drive.
Free, Donation and Business editions
| Edition | Intended use | Additions over the free version |
|---|---|---|
| Standard | Private, personal use | None; all core sync features, no file-count limits |
| Donation Edition | Personal use by donors | Auto-updater, parallel file copy, email notifications with sync logs, portable Windows version |
| Business Edition | Commercial, organizational and government use | Same additions except the portable version, plus silent installation |






