在子目录中查找相同的文件

duplicates的Python项目详细描述


重复

Build Status

扫描子目录中的相同文件(副本)。在

要求

  • Python>;=3.6
  • 不支持MS Windows

说明

要查找具有相同内容的文件,将扫描给定目录并 对于相同大小的文件,计算并比较它们的SHA-256指纹。 具有相同指纹的两个文件被认为具有相同的内容。 具有相同指纹的两个文件很少有不同的 内容,但这次机会是very remote。在

默认情况下忽略符号链接和隐藏项,此行为可以 使用CLI选项--follow/--hidden和构造函数选项进行更改 ignore_hidden/ignore_symlinks。在

CLI示例

这篇文章将为您提供简短的命令概述:

$ duplicates --help

扫描目录dirAdirB和{}中的重复项,并报告所有找到的 相同的文件:

^{pr2}$

打印最旧的文件时不缩进,打印所有相同的文件 由制表符缩进。最旧的文件应该是原始文件。在

如果您愿意冒险,您可以一次删除所有重复项。 我不敢,但你明白了:

$ 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指纹(不针对唯一文件计算)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件