在子目录中查找相同的文件
duplicates的Python项目详细描述
重复
扫描子目录中的相同文件(副本)。在
要求
- Python>;=3.6
- 不支持MS Windows
说明
要查找具有相同内容的文件,将扫描给定目录并 对于相同大小的文件,计算并比较它们的SHA-256指纹。 具有相同指纹的两个文件被认为具有相同的内容。 具有相同指纹的两个文件很少有不同的 内容,但这次机会是very remote。在
默认情况下忽略符号链接和隐藏项,此行为可以
使用CLI选项--follow
/--hidden
和构造函数选项进行更改
ignore_hidden
/ignore_symlinks
。在
CLI示例
这篇文章将为您提供简短的命令概述:
$ duplicates --help
扫描目录dirA
、dirB
和{
打印最旧的文件时不缩进,打印所有相同的文件 由制表符缩进。最旧的文件应该是原始文件。在
如果您愿意冒险,您可以一次删除所有重复项。 我不敢,但你明白了:
$ duplicates --dups-only dirA dirB |whileread dups ;do xargs -0 rm $dups;done
使用--dups-only
时,一个原始文件的所有副本都将在一行上输出,
以\0
(ASCII码零)分隔。在
对于fish shell,它看起来几乎相同:
$ duplicates --dups-only dirA dirB |whileread -la dups ; xargs -0 rm $dups; end
Python示例
importduplicatesdf=duplicates.DupFinder(verbose=True)uniq,dups=df.scan(".")
uniq
是唯一文件对象的列表。dups
是相同文件的列表,
它们依次是文件对象的列表,第一个是最旧的元素
这就是所谓的原版。在
文件对象是由以下元素组成的dict:
path
:a路径库路径对象age
:以秒为单位的修改时间(Unix time)size
:文件大小(字节)hash
:SHA-256指纹(不针对唯一文件计算)
- 项目
标签: