通过文件大小和MD5校验识别重复文件

#!/bin/sh
if [ $# != "1" ] || [ $1 = "--help" ];then
echo "Sytax:md5-sum.sh directory";
exit;
fi
echo "Begin"
#file-list
list=$(find $1);


#rm
$(rm -fr file_tmp.txt)
$(rm -fr file_result.txt)


#Loop
for item in $list;
do
if [ -f "${item}" ];then
md5str="$(md5sum ${item} 2>/dev/null | awk '{print $1}')";
    filesize="$(du -sk ${item} 2>/dev/null | awk '{print $1}')";
    echo "${item},${filesize},${md5str}" >> file_tmp.txt
fi
done
echo "End"


#

awk 'BEGIN {FS=","}{if (!($2,$3) in tarry){tarry[$2,$3]=$1}else{tarry[$2,$3]=tarry[$2,$3]","$1}}END{for(k in tarry){split(k,tarr2,SUBSEP);print tarr2[1],"*",tarr2[2],"=",tarry[k];}}' file_tmp.txt >> file_result.txt


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的JavaWeb实现文件MD5校验的Servlet和JSP界面。首先是Servlet: ```java import java.io.FileInputStream; import java.io.IOException; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/calculateMd5") public class CalculateMd5Servlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileName = request.getParameter("fileName"); String md5 = null; try (FileInputStream fis = new FileInputStream(fileName)) { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] buffer = new byte[1024]; int read; while ((read = fis.read(buffer)) != -1) { md.update(buffer, 0, read); } BigInteger bi = new BigInteger(1, md.digest()); md5 = bi.toString(16); } catch (NoSuchAlgorithmException e) { // This should never happen e.printStackTrace(); } request.setAttribute("md5", md5); request.getRequestDispatcher("result.jsp").forward(request, response); } } ``` 这个Servlet接收一个文件名参数,计算文件MD5校验值,并把结果设置为请求属性`"md5"`,最后转发到结果页面`result.jsp`。 接下来是`result.jsp`页面: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>File MD5 Calculator</title> </head> <body> <h1>File MD5 Calculator</h1> <p>MD5: <%= request.getAttribute("md5") %></p> </body> </html> ``` 这个页面只是简单地显示计算得到的MD5值。你可以根据需要修改页面的标题、样式和布局。 最后,你需要创建一个包含上传文件表单和计算MD5值的按钮的JSP页面,让用户可以选择要计算MD5值的文件。以下是一个简单的例子: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>File MD5 Calculator</title> </head> <body> <h1>File MD5 Calculator</h1> <form action="calculateMd5" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <br> <button type="submit">Calculate MD5</button> </form> </body> </html> ``` 这个页面包含了一个上传文件的表单和一个计算MD5值的按钮。当用户选择了文件并点击按钮后,表单会被提交到`calculateMd5`Servlet处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值