首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rdfind - Linux查找重复文件

背景 前段时间遇到一个问题,服务器下面一个文件夹下面的图片越来越多,由原来的5G,达到了现在的94G,其中这个文件夹下面有好多重复的图片,文件多了之后造成图片备份困难,图片迁移困难,浪费了大量的空间和IO...本文中将介绍rdfind命令工具linux查找和删除重复的文件,使用之前请先在测试环境跑通并对测试环境进行严格的测试,测试通过之后再在生产环境进行操作,以免造成重要文件的丢失,数据是无价的。...Rdfind来自冗余数据查找,用于多个目录或者多个文件查找重复的文件,它使用校对和并根据文件查找重复项不仅包含名称。 Rdfind使用算法对文件进行分类,并检测那些是重复文件,那些是文件副本。...root@ds Image]# drfind /Image/ [root@ds Image]# Rdfind 命令将扫描 /Image 目录,并将结果存储到当前工作目录下一个名为 results.txt 的文件...你可以 results.txt 文件中看到可能是重复文件的名字。 通过检查 results.txt 文件,你可以很容易的找到那些重复文件。如果愿意你可以手动的删除它们。

5.1K60
您找到你想要的搜索结果了吗?
是的
没有找到

使用 Ruby 或 Python 文件查找

对于经常使用爬虫的我来说,大多数文本编辑器都会有“文件查找”功能,主要是方便快捷的查找自己说需要的内容,那我有咩有可能用Ruby 或 Python实现类似的查找功能?这些功能又能怎么实现?...问题背景许多流行的文本编辑器都具有“文件查找”功能,该功能可以一个对话框打开,其中包含以下选项:查找: 指定要查找的文本。文件筛选器: 指定要搜索的文件类型。开始位置: 指定要开始搜索的目录。...解决方案Python以下代码提供了指定目录搜索特定文本的 Python 脚本示例:import osimport re​def find_in_files(search_text, file_filter...file_filter, start_dir, report_filenames, regex_search)​for result in results: print(result)Ruby以下代码提供了指定目录搜索特定文本的...上面就是两种语实现在文件查找的具体代码,其实看着也不算太复杂,只要好好的去琢磨,遇到的问题也都轻而易举的解决,如果在使用中有任何问题,可以留言讨论。

7310

Linux-指定文件类型递归查找到目标字符串

当前目录 ---- 按文件查找: -name: 查找文件名大小写敏感。 -iname: 查找文件名大小写不敏感 ---- ‘*.conf’ 文件类型。...比如这里查询的是.conf类型的文件,要查找 xml结尾的 *.xml等等….. ---- xargs命令: 该命令的主要功能是从输入构建和执行shell命令 使用find命令的-exec选项处理匹配到的文件时...但有些系统对能够传递给exec的命令长度有限制,这样find命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。...在有些系统,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高; 而使用xargs...另外,使用xargs命令时,究竟是一次获取所有的参数,还是分批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核相应的可调参数来确定。

1.8K50

Java如何加快大型集合的处理速度

超过 100 万个网站通过某种形式使用 Java,超过三分之一的软件开发人员的工具箱中有 JavaJava 它的整个生命历程中经历了重大的演变。...管道的中间方法是惰性的,也就是说,它们只必要时才进行求值。 并行执行和串行执行都存在于流。默认情况下,流是串行的。 5 通过并行处理来提升性能 Java 处理大型集合可能很麻烦。...并行处理,即将处理任务分解为更小的块并同时执行它们,提供了一种处理大型集合时减少处理开销的方法。但是,即使并行流处理简化了代码编写,也会导致性能下降。...某些情况下,串行处理仍然优于并行处理。 本例,我们使用 Java 的原生进程来分割数据和分配线程。 不幸的是,对于上述两种情况,Java 的原生并行处理并不总是比串行处理更快。... NQ 模型,N 表示需要处理的数据元素数量,Q 表示每个数据元素所需的计算量。 NQ 模型,计算 N 和 Q 的乘积,数值越大,说明并行处理提高性能的可能性越大。

1.8K30

vim和vi查找和替换字符串

Vim查找和替换文本非常容易。 基本查找和替换 Vim,可以使用:substitute(:s)命令来查找和替换文本。...例如,要在当前行搜索字符串 foo的第一个匹配项,并将其替换为 bar,则可以使用: :s/foo/bar/ 要替换当前行中所有出现的搜索模式,请添加g标志: :s/foo/bar/g 如果要搜索并替换整个文件的所有匹配的模式...此字符表示从文件的第一行到最后一行的范围: :%s/foo/bar/g 如果省略{string}部分,则将其视为空字符串,并删除匹配的模式。...当你搜索模式包含 /字符或替换字符串时,此选项很有用。....,+4s/foo/bar/g 替换整个单词 替代命令将模式查找字符串,而不是整个单词。

12K21

系统查找重复文件(哈希)

题目 给定一个目录信息列表,包括目录路径,以及该目录的所有包含内容的文件,您需要找到文件系统的所有重复文件组的路径。 一组重复的文件至少包括二个具有完全相同内容的文件。...输入列表的单个目录信息字符串的格式如下: "root/d1/d2/......文件路径是具有下列格式的字符串: "directory_path/file_name.txt" 示例 1: 输入: ["root/a 1.txt(abcd) 2.txt(efgh)", "root/c...您可以假设目录名、文件名和文件内容只有字母和数字,并且文件内容的长度 [1,50] 的范围内。 给定的文件数量 [1,20000] 个范围内。...您可以假设在同一目录没有任何文件或目录共享相同的名称。 您可以假设每个给定的目录信息代表一个唯一的目录。目录路径和文件信息用一个空格分隔。

1.4K10

如何使用LinkFinderJavaScript文件查找网络节点

关于LinkFinder LinkFinder是一款功能强大的Python脚本,该工具的帮助下,广大研究人员可以轻松JavaScript文件中发现和扫描网络节点及其相关参数。...这样一来,渗透测试人员和漏洞猎人将能够快速测试的目标网站伤收集新的隐藏节点了。...-d --domain 分析整个域时使用,可以切换并枚举所有找到的JS文件 -b --burp 当Burp结果文件包含多个JS文件时,可以切换使用 -c --cookies 向请求添加Cookie...-h --help 显示工具帮助信息和退出 工具运行样例 在线上JavaScript文件查找网络节点,并将结果输出到results.html文件: python linkfinder.py...JavaScript文件,搜索以/api/开头的网络节点,并将结果存储到results.html文件: python linkfinder.py -i 'Desktop/*.js' -r ^/api/

30050

Java使用Sunday算法来根据字符串内容查找文件

所以这篇文章搬运来自自己博客的文章 正文如下 今天周末,出租屋无聊便来公司呆着。顺便看看Sunday算法 Sunday算法的查找匹配速率比KMP算法快,其匹配规则也简单易懂....其移动位数主要时参考与字符串参加匹配的最末位字符的下一位字符,如果该字符并未在搜索串中出现,则将字符串指针移动到该字符的下一位字符,搜索串指针则归零,反之,如果参加匹配的最末位字符的下一位字符出现在搜索串...,则移动位数等于搜索串长度减去搜索串第一次出现该字符的下标。...详情看末尾的引用,同样也谢谢这两篇文章的作者 java实现代码 public int sundaySearchStrByStr(String strTotal, String strSearch) {...,添加的条件即代码的num < charTotal.length,满足此条件才能进行下一步,否则则跳出循环 另外,Sunday算法while循环中多了一部for循环,其做的就是将那下一个字符与搜索串进行匹配

1.3K00

java查找字符串的字符_java查找字符串中最常见字符的更有效方法

参考链接: Java程序查找一个字符的ASCII值 执行此操作的最快方法是计算每个字符的出现次数,然后取计数数组的最大值.如果您的字符串很长,那么循环字符串的字符时,不会跟踪当前最大值,您将获得不错的加速...如果你的字符串主要是ASCII,那么count循环中的一个分支可以低128字符值的数组或其余的HashMap之间进行选择,这应该是值得的.如果您的字符串没有非ASCII字符,分支将很好地预测.如果在ascii...return maxappearchar;  }  我没有充实代码,因为我没有做很多Java,所以IDK如果有一个容器,那么比HashMap get和put对更有效地执行insert-1-increment...但是,末尾循环遍历所有65536个条目意味着至少读取它,因此操作系统必须对其进行软页面故障并将其连接起来.它会污染缓存.实际上,更新每个角色的最大值可能是更好的选择....Microbenchmarks可能会显示迭代字符串,然后循环遍历charcnt [Character.MAX_VALUE]获胜,但这不会解释缓存/ TLB污染触及那么多非真正需要的内存.

1.1K30

使用kmp算法匹配字符串查找文件(java版)

.:) 正文如下 接上一篇文章,依据字符串查找文件。当时使用Python来实现的,没使用啥算法,也就算是暴力匹配,查找速率很是慢。所以这次是使用KMP算法来实现。...t++ 在前面的匹配都满足的时候,在当searchStr[searchStr.length-1]与totalStr[t]也相等时,即表示已经成功的字符串找着了搜索串,如果还需要继续匹配,即查找全部字符串...,其做法就是将传入的字符串进行前缀后缀拆分,之后返回最大公共字符串长度,如果没有公共字符串则返回0 所有返回的最大公共字符串长度将被方法getKMPtable()操作存放到一个int类型的数组,并最后返回这个数组...java字符串搜索文件总体代码 package com.cgtest.kmpsearch; import java.io.BufferedReader; import java.io.File; import...class KMPsearchFile { public static void main(String [] args) { System.out.println("通过字符串查找文件

1.4K10

使用kmp算法匹配字符串查找文件(java版本)-2

python实现KMP算法代码 其python实现的KMP算法核心代码如下 def kmpSearchStrByStr(totalStr, strSearch, kmpTable): #kmp算法查找...#返回字符串包含搜索串的个数 listSearch = list(strSearch) listTotal = list(totalStr) s = 0...,将其存放到int数组返回 intTablesLength = len(strSearch) kmpTable = [] for i in range(intTablesLength...搜索对比 python实现的字符串搜索文件java实现的字符串搜索文件,其运行速率对比还是很明显,估计问题就在python对文件编码格式上面,如图 640 (1).png 速率相差太大,估计就是代码的问题... java代码同样也是臃肿… ---- 首发来自公众号: 程序员品 qrcode_for_gh_3a45e815cefd_258 (1).jpg

60000

Java设计模式Android的实践

需要注意以下几点: (1)子类的所有方法必须在父类声明,或子类必须实现父类声明的所有方法。 (2)尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类声明的方法。...依赖倒转原则 实现依赖倒转原则时,我们需要针对抽象层编程,而将具体类的对象通过依赖注入的方式注入到其他对象,依赖注入是指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象。...(3)接口注入是指通过接口中声明的业务方法来传入具体类的对象。 这些方法定义时使用的是抽象类型,在运行时再传入具体类型的对象,由子类对象来覆盖父类对象。...接口隔离原则 (1)使用接口隔离原则时,我们需要注意控制接口的粒度。 (2)接口不能太小。如果太小会导致系统接口泛滥,不利于维护; (3)接口也不能太大。...Java设计模式详解 Java设计模式之创建型模式 Java设计模式之结构型模式 Java设计模式之行为型模式 项目源码 项目源码地址:https://github.com/xuexiangjys/architect-java

83530
领券