go-rdfind是什么
go-rdfind是一个用于寻找一个目录中是否存在内容完全相同的两个文件的工具。
本工具由沃航科技开发,用途是用于整理日益积累的项目资料。
当一个项目参与人员变多时,有些资料往往是人手一份,但是当项目结束,需要将数据备份时,容易出现同一份文件被多次备份,有些甚至是大文件。考虑到文件备份的高效性,沃航科技开发了这个软件用于专门清理内容完全一样的文件。
开发语言
本软件考虑到需求上数据IO密集型操作,对运算性能要求不高,因此没有使用C语言这种运行速度非常快的开发语言,而是选择了天生的异步IO语言---go语言,已保证运行速度。
go语言是跨平台语言,同时使用于windows,linux。并且生成的可执行文件为单文件,使用方便。
判断方法
系统是通过计算文件的sha512值,然后将该值保留起来,后续新的文件如果出现相同的sha512值,就会认为是相同的文件。因此有小概率会出现sha512的碰撞,也就是不同的文件被识别为同一个。
使用参数
-d folder 用于选择需要检查的文件夹
-t thread number, default 10 用于设置同时运行的协程数量,默认为10
-w handle way 用于指定处理方式
??0为只是显示与提醒,其他什么都不做
??1为只是显示与提醒,其他什么都不做
??2为删除其中一个,然后生成硬链接
??3为删除其中一个,然后生成符号链接(需要超级权限)
源码地址
源码托管于github上,地址为:传送门
文章作者:沃航科技