File and folder synchronization

As noted in the previous post, although there are lots of good software packages bundled in the Ubuntu distro, there are also numerous free and open-source programs that offer similar functionality to some of the “standard” offerings, but also some that have novel feature(s) that makes their use particularly worthwhile.

One such program is FreeFileSync, a package that allows for easy file and folder synchronization across different drives. FreeFileSync is not found in the Ubuntu distro, nor is it available in the Ubuntu Software Centre or through Synaptic Package Manager. Nevertheless, it is readily available from SourceForge, and is simple to install and use.

Even though I routinely run inosync (see Real-time backup) to provide a real-time backup of my data partition, I still like making intermediate backups of certain file folders, and even of the entire data partition, on my hard drive. This is especially true when I wish to make a quick backup of a file that I have been working on, or to make a copy of a file in order to transfer it to a different computer.

A lot of chat on the web suggests using Unison (, an open-source utility that includes a graphical user interface; however, use of this package isn’t straightforward as it seems to require some considerable tweaking of file permissions before it will successfully create backups.

Eventually, I came across FreeFileSync on SourceForge touted as “…an open-source folder comparison and synchronization tool… optimized for highest performance and usability without restricted or overloaded UI interfaces.” This sounded perfect for my purpose!

The download arrives as a .tar.gz file, meaning that it is a compressed tar archive – a Tape ARchive or tarball – compressed using the GNU zip (Gzip) protocol. Simply double-clicking on this file in Ubuntu brings up the File Roller archive manager, complete with an Extract button. I created a FreeFileSync folder and extracted the files from the archive. Included amongst these was a file named FreeFileSync (with no extension) that is the executable version of the utility.

Double-clicking on this file brought up the program. Now, it was simply a matter of selecting the source folder on my hard disk, and the target folder on my USB memory key, by browsing both drives, and pressing the Compare button.

Well, maybe it wasn’t quite that simple. To my mind, the browse function is enabled a little clumsily. Simply clicking on the browse button only gives a list of places on the system that are already specified. I found that I needed to select Browse – Other in order to open up a tree directory from which I could readily select any particular drive and folder of interest. Not terribly intuitive!

The comparison only lists files that are different between the source and the target. In the case shown, a text file and an associated screenshot have not yet been backed up to the USB drive. To do so, all that is required is to press the Synchronize button.

Note (in the text displayed just above the synchronize and compare buttons) that the program has been configured to “mirror” the source files on the target drive, with files being compared based on their date-time stamps. Any new files in the source folder will be copied to the target, any updated files will be overwritten in the target folder, and any files deleted from the source folder will be removed from the target. This ensures that the target folder is maintained as an exact copy of the source folder.

While these are my preferences for a backup system, the program is configurable using the two cog-wheel type buttons. File comparison may be made by date and time, or by file content. Synchronization can be set to be two-way, mirrored, updated (no target deletions), or even customized to the user’s preferences. Deleted files can be sent to the trash, to a folder of the user’s choice, or erased immediately. The Advanced menu option allows considerable further configuration of the program, including language selection, and a global setting to ignore one-hour time differences (daylight savings) on files.

Another useful option can be found by clicking the mouse on the icon in the Filter files area at the bottom of the program window. This allows specific files and/or folders to be included or excluded from the comparison/synchronization process. Since I use a Windows (NTFS) partition to hold all of my data files, I set System Volume Information
and $RECYCLE*.* to be excluded in order to avoid processing the System Volume Information folder and the Recycle Bin that are used exclusively by Windows.

One final option worth noting is that, when a directory comparison is displayed, the action to be taken on each file (e.g. copy from left to right, or delete) is shown for each file together with a check box. De-selecting a given check box causes the specified action to be aborted. This can be very useful in cases where the user does not wish to process one or more files in the list for some reason or other.

The program’s Help menu is relatively brief, but very informative. The basic program operations are clearly described with the use of coloured illustrations. More complex tasks to be undertaken by the advanced or specialized user are explained in some detail.

FreeFileSync doesn’t replace the need for complete system backups, nor obviate the utility of real-time backups of a dedicated data partition, but it does provide a quick and easy way to backup/copy specific files and folders from one disk to another, e.g. from a hard disk to a USB memory stick.


Exploring Linux – Part 18

FreeFileSync – Open Source Folder Comparison and Synchronization


This entry was posted in Applications, Backup. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s