文件比较与同步工具——FreeFileSync

1. 基本介绍

FreeFileSync是一个用于文件同步的免费开源程序。FreeFileSync通过比较其内容,日期或文件大小上的一个或多个文件夹,然后根据用户定义的设置同步内容。除了支持本地文件系统和网络共享之外,FreeFileSync还能够同步到FTP,FTPS,SFTP和MTP设备。

下载网址:https://freefilesync.org/

支持系统:Windows,Linux和macOS

2. 基本操作

2.1 软件界面及功能

1:快捷工具窗口

2:保存/加载配置

3:文件比较缩略图

4:开始比较文件差异按钮

5:文件比较设置

6:过滤条件设置

7:修改同步设置

8:同步按钮

9:源文件目录设置

10:待同步文件目录

11:源文件目录与待同步目录不同的文件列表

12:同步预览区域

13:待同步文件与源文件不同的列表

14:同步统计

2.2 同步文件步骤

(1)       设置源文件目录

(2)       设置待同步文件目录

(3)       设置文件比较方式(比较内容、时间、大小)

(4)       设置同步参数(双向、镜像、更新及自定义)

(5)       点击同步按钮

 

3. 文件比较设置

 

比较两个文件夹时,FreeFileSync会分析相对于包含文件的左右基本文件夹的路径。如果相对路径匹配,FreeFileSync将通过考虑所选的比较变量来决定文件对的分类方式:

3.1 按文件时间和大小进行比较

当变体时间和文件大小匹配时,此变体认为两个文件相等。在将文件与备份位置同步时应该选择它。每当更改文件时,其文件修改时间也会更新。因此,按文件时间和大小进行比较将检测应同步的所有文件。区分以下类别:

(1)文件仅存在于一侧

    ->仅在左侧

    ->仅在右侧

(2)文件存在于双侧

    ->不同时间——左侧文件较新/右侧文件较新

    ->相同时间——相同文件/冲突(文件时间一致,大小不一样)

3.2  按文件内容比较

如果两个文件具有相同的内容,则将它们标记为相等。在进行一致性检查时应选择此变体,以查看两侧的文件是否按位相同。当然,它是所有比较变体中最慢的,因此其用于同步目的的有用性是有限的。如果用于同步,则当修改时间不可靠时,它可以用作后备。例如,某些移动电话和传统FTP服务器不会保留修改时间,因此在文件大小相同时检测不同文件的唯一方法是阅读其内容。

(1)文件仅存在于一侧

    ->仅在左侧

    ->仅在右侧

(2)文件存在于双侧

    ->相同文件

    ->内容不同

3.3  按文件大小比较

如果文件大小相同,则认为两个文件相同。由于具有相同大小的文件可能具有不同的内容,因此仅当文件修改时间不可用或不可靠时才应使用此变体,例如,在某些MTP和FTP同步方案中,按内容进行比较的速度太慢。

(1)文件仅存在于一侧

    ->仅在左侧

    ->仅在右侧

(2)文件存在于双侧

    ->相同文件

    ->大小不同

 

4. 文件过滤设置

如果文件和目录通过所有过滤规则,则仅考虑进行同步。它们必须匹配包含列表中的至少一个条目,并且不包括过滤器配置对话框中显示的排除列表中的任何条目:

  每个列表项必须是相对于同步基目录的文件或目录路径。

  必须用|分隔多个项目或新行。

  *和?使用:*表示零个或多个字符,而?代表一个字符。

(1)从文件夹对C:\ Source,D:\ Target中排除项目

过滤文件描述

过滤实例

过滤文件:C:\Source\file.txt

\file.txt

过滤单个文件夹:C:\Source\SubFolder

\SubFolder\

所有名字为thumbs.db的文件

*\thumbs.db

所有在SubFolder文件夹的*.tmp文件

\SubFolder\*.tmp

文件或路径包含temp

*temp*

多类文件过滤

*.tmp | *.doc | *.bak

根目录所有子文件夹

*\

子文件夹里的*.txt文件

\*\*.txt

(2)排除除某些文件之外的子文件夹

设置两个具有相同源和目标路径但具有不同本地过滤器的文件夹对:

文件夹1:排除文件夹:   \SubFolder\

文件夹2:包含文件:  \SubFolder\*.txt

(3)排除空文件夹

文件大小为零的过滤器设置文件大小过滤器,下限为0个字节。 时间跨度和文件大小过滤器仅匹配文件,因此这将排除所有文件夹。 然而,在同步期间,如果一些排除的文件夹包含至少一个非排除的项目,即当它们不是空的时,它们仍将被同步

 

5. 同步设置

 

同步模式

双向——将左侧的更改同步到右侧,将右侧的更改同步到左侧

镜像——将左侧的更改同步到右侧,包含删除移动等

更新——将左侧的更改同步到右侧,不删除右侧原有的文件

自定义——自行根据需要定义同步模式

检测已移动的文件

FreeFileSync能够在一侧检测移动的文件,并且可以在同步期间快速在目标端应用相同的移动,而不是慢速复制和删除。 为了使其工作,FreeFileSync需要数据库文件(sync.ffs_db)来比较当前文件系统状态与上次同步的时间。

双向——已经创建了数据库文件,因此,移动文件的检测始终处于活动状态。

镜像——不需要数据库文件来查找同步方向,因此默认情况下无法检测已移动的文件。

如果您不介意创建数据库文件,可以通过选中“检测已移动的文件”复选框来启用此功能。

注意

第一次同步文件夹对时,无法检测已移动的文件。 只有从第二次同步开始,数据库文件才可用于确定移动的文件。

所有文件系统都不支持检测。 最值得注意的是,无法检测FAT文件系统上的某些文件移动。 还有虚拟化的文件系统,例如 安装的WebDAV驱动器可能不支持移动检测。 在这些情况下,FreeFileSync将自动回退复制和删除。

 

6. 高级设置

FreeFileSync具有许多专用设置,只能通过手动打开全局配置文件GlobalSettings.xml来访问。请注意,FreeFileSync启动时会读取此文件一次,退出时会再次保存。因此,仅在FreeFileSync未运行时才应用手动更改。对于便携式FreeFileSync变体,该文件位于安装文件夹中,对于本地安装,请转到:

Windows:       %AppData%\FreeFileSync

Linux:     ~/.config/FreeFileSync

macOS:   ~/Library/Application Support/FreeFileSync

FileTimeTolerance

默认情况下,文件修改时间允许有2秒的差异,但仍被视为相等。这是FAT / FAT32文件系统所要求的,它只能以2秒的精度存储文件时间。

RunWithBackgroundPriority

在同步正在运行时,访问相同数据位置的其他应用程序可能会出现明显的减速。启用此设置可降低FreeFileSync的资源消耗,但代价是同步速度明显降低。

LockDirectoriesDuringSync

为了防止多个同步任务读取和写入相同的文件,FreeFileSync实例使用锁定文件(sync.ffs_lock)进行序列化。锁文件只能由FreeFileSync识别,并确保最多只能同时对某个文件夹运行单个同步,而其他实例排队等待。这可确保只有一致的文件集才能同步。主要用例是网络同步方案,其中多个用户针对共享网络文件夹同时运行FreeFileSync。

VerifyCopiedFiles

如果处于活动状态,FreeFileSync将在复制后对源文件和目标文件进行二进制比较并报告验证错误。请注意,这可能会使文件复制时间翻倍,并且无法保证数据在复制之前尚未损坏。此外,欺骗性地从应用程序和硬件堆栈中的各种缓冲区中读取有效数据可能会隐藏损坏:

NotificationSound

从比较或同步后要播放的FreeFileSync安装目录中选择声音文件。如果不播放声音,请设置空名称。

 

posted @ 2019-04-29 15:45  mat_wu  阅读(36285)  评论(0编辑  收藏  举报