测试环境 :centos7
⚠️注意:该代码在Mac os系统下会因为参数问题报错 无参数“ls --time-style” "uniq -w" "md5sum" mac 安装md5命令 brew install md5sha1sum

#!/bin/bash#查找并删除重复文件 每个文件只保留一份# ls -lS(-l list -S Sort files by size) --time-style指定日期和时间输出格式
# awk 从管道读取ls -lS的输出,对行列进行比较从而找出重复文件
# 执行 awk BEGIN{}语句快,读取文本行工作在{}中
# 文件ls后输出的格式为类似这种
# total 16
#    -rw-r--r-- 1 slynux slynux 5 2010-06-29 11:50 other
#    -rw-r--r-- 1 slynux slynux 6 2010-06-29 11:50 test
#    -rw-r--r-- 1 slynux slynux 6 2010-06-29 11:50 test_copy1
#    -rw-r--r-- 1 slynux slynux 6 2010-06-29 11:50 test_copy2# 则getline得到第一行后丢弃,然后用getline读取
# 第二行储存第5列的文件大小和第八列的文件名ls -lS --time-style=long-iso | awk 'BEGIN {getline; getline;name1=$8; size=$5
}
{name2=$8;if (size==$5) {"md5sum " name1 | getline; csum1=$1;"md5sum " name2 | getline; csum2=$1;if ( csum1==csum2 ){print name1; print name2}};size=$5; name1=name2;
}' | sort -u > duplicate_files#中间的{}语句块读取第二行之后的内容 读取到的每一行都存文件名,然后比对文件大小
#如果一样则用md5算法比对文件名 将文件计算得到的md5值保存在csum1中
#"md5sum " name1 | getline 将md5值输出到stdout,然后 csum1=$1;从stdout读取存储到csum中
#由于第一步按照文件大小排序,若此时md5值相等的话则肯定为重复文件 输出重复的文件名
#sort按字典排序 -u 不重复输出到duplicate_files中cat duplicate_files | xargs -I {} md5sum {} | sort | uniq -w 32 | awk '{ print "^"$2"$" }' | sort -u > duplicate_sample
#xargs 使用-I指定一个替换字符串{},这个字符串在xargs扩展时会被替换掉
#该句将重复的文件中的一个采样写入duplicate_sample中echo Removing..
comm duplicate_files duplicate_sample  -2 -3 | tee /dev/stderr | xargs rm
#求差集:打印出那些互不包含的行 打印出到终端同时重定向到文件 /dev/stderr中通过xargs处理传递给rm命令
echo Removed duplicates files successfully.

删除重复文件的脚本代码相关推荐

  1. shell 删除重复文件

    shell 删除重复文件的脚本 #!bin/bash #文件名:remove_duplicates.sh #用途:查找并删除重复文件,每一个文件只保留一个样本ls -lS | awk 'BEGIN{g ...

  2. python删除重复文件代码

    整理磁盘才发现有好多重复文件,便想手写一个删除重复文件的工具.我当然可以用java轻松写一个了,只是最近看了一些python方面的东西,所以想不如拿python练练手.功能很简单,只是为了查阅资料,我 ...

  3. python 重复图片_删除重复文件或图片(去重)的python代码

    通过python爬虫或其他方式保存的图片文件通常包含一些重复的图片或文件, 通过下面的python代码可以将重复的文件删除以达到去重的目的.其中,文件目录结构如下图: # /usr/bin/env p ...

  4. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)

    在群晖中批量删除重复文件(零基础手把手图文) 2020-03-26 14:51:01 24点赞 229收藏 39评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击 ...

  5. python 删除重复文件

    背景: 由于操作异常造成文件夹下有大量重复生成的文件, 例如 D:\mydata\data1.txt D:\mydata\data1(1).txt D:\mydata\data2.txt D:\myd ...

  6. linux 删除文件中重复,linux系统删除重复文件

    fdupes:Linux中查找并删除重复文件的命令行工具fdupes是Linux下的一个工具,它由Adrian Lopez用C编程语言编写并基于MIT许可证发行,该应用程序可以在指定的目录及子目录中查 ...

  7. 【shell】删除重复文件

    2019独角兽企业重金招聘Python工程师标准>>> #!/bin/bash  #name:remove_one.sh #用途:查找并删除重复文件,每个文件只保留一个样本 #将文件 ...

  8. 删除顽固文件的执行代码,删除rhsa属性文件,删除服务器中黑客留下...

      删除顽固文件的执行代码,删除rhsa属性文件,删除服务器中黑客留下的畸形文件文件有时候服务器的网站空间被黑客入侵,上传了删除不了的文件,我们可以用bat代码来执行删除. DEL /F /A /Q ...

  9. CCleaner软件一键查找/删除重复文件

    在日常工作学习中,电脑系统在使用后难免会出现一些重复文件,这些重复文件不仅会给工作带来极大的不便,也会占用电脑宝贵的内存资源.因此,经常查找与清理电脑系统中的重复文件就显得格外重要. 小编在此向大家推 ...

最新文章

  1. 顶配版阿里大佬面试笔记+300道硬核面试题,跪着啃完了。。。。
  2. (20/24) webpack实战技巧:watch实现热打包和添加代码备注
  3. c语言函数打印零星,C语言零星笔记--(const、typedef)
  4. 0.0 目录-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. 精进:如何成为一个很厉害的人---书摘(转)
  6. 递归函数斐波那契数列python_使用Python函数递归实现斐波那契数列时为什么运行速度很慢?...
  7. HSRP的初步解析及典型应用2
  8. Fread函数的用法
  9. JAVA_JDK下载与安装教程
  10. 2022腾讯云学生服务器价格申请认证及购买攻略
  11. python里面的pip是什么意思_python的pip有什么用
  12. 认真分享一波本科 4 年挣到人生第一个 30w 的经历:目标->动力->坚持->改变
  13. CPA十二--我国外币会计报表折算(转载)
  14. 图像处理篇二:图像颜色转换(OpenCV、PIL)
  15. 同花顺level2股票接口是什么?
  16. 本来面目——大教堂、集市,与作坊
  17. kafka集群配置(三台机器)
  18. Kali之zip压缩包密码爆破
  19. 关于“大局观”的一些思考
  20. 线上会议精彩回顾 - Cloudera Sessions China 2021

热门文章

  1. 2017-百度-安全岗笔试
  2. react调试工具与调试方法
  3. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
  4. 弱小和无知不是生存的障碍,傲慢才是
  5. c语言 substr,如何在C语言实现substr()
  6. 人工智能物联网开发的目录
  7. python判断座位号_利用Python实现图书馆座位抓取(自动预约),python,抢座
  8. 蓝桥杯-第九届决赛——采油
  9. ✨ StarRocks 11 月社区动态
  10. 老男孩教育100道面试题