FreeFileSync 一款开源的文件同步软件

FreeFileSync 用户手册:

File Versioning

When you need to preserve files that have been deleted or overwritten, it's often sufficient to select Recycle bin in synchronization settings. However, this is only available for local drives and offers little control on how to store and how long to keep the files. FreeFileSync therefore has an additional option, Versioning.

1. Keep only the most recent versions

In synchronization settings, set deletion handling to Versioning and naming convention to Replace. Deleted files will be moved to the specified folder without any decoration and will replace already existing older versions.
Versioning

2. Keep multiple versions of old files

  1. Set deletion handling to Versioning and naming convention to Time stamp [File]. FreeFileSync will move deleted files into the provided folder and add a time stamp to each file name. The structure of the synchronized folders is preserved so that old versions of a file can be conveniently accessed via a file browser.
     
    Example: Last versions of the file Folder\File.txt inside folder D:\Revisions
    D:\Revisions\Folder\File.txt 2020-12-11 111111.txt
    D:\Revisions\Folder\File.txt 2020-12-12 122222.txt
    D:\Revisions\Folder\File.txt 2020-12-13 133333.txt

  2. With naming convention Time stamp [Folder] files are moved into a time-stamped subfolder of the versioning folder while their names remain unchanged. This makes it easy to manually undo a synchronization by moving the deleted files from the versioning folder back to their original folders.
     
    Example: Last versions of the file Folder\File.txt inside folder D:\Revisions
    D:\Revisions\2020-12-11 111111\Folder\File.txt
    D:\Revisions\2020-12-12 122222\Folder\File.txt
    D:\Revisions\2020-12-13 133333\Folder\File.txt

3. Save versions at certain intervals

With naming convention Replace it is possible to refine the granularity of versions to keep by adding Macros to the versioning folder path. For example, you can save deleted files on a daily basis by adding the %date% macro:

Example: Last versions of the file Folder\File.txt inside folder D:\Revisions\%date%
D:\Revisions\2020-12-11\Folder\File.txt
D:\Revisions\2020-12-12\Folder\File.txt
D:\Revisions\2020-12-13\Folder\File.txt