温馨提示×

linux如何查找重复文件

小樊
39
2026-09-19 20:43:54
栏目: 智能运维

在 Linux 下查找重复文件,常见做法有命令行工具和脚本方式,下面按实用程度给你总结。


一、最推荐使用:fdupes(简单高效)

安装

# Debian / Ubuntu
sudo apt install fdupes

# CentOS / Rocky / Alma
sudo yum install fdupes

# Arch
sudo pacman -S fdupes

基本用法

fdupes -r /path/to/dir
  • -r:递归子目录
  • 只显示重复文件组

删除重复文件(保留一个)

fdupes -rdN /path/to/dir
  • -d:删除重复
  • -N:自动保留第一个,不交互

二、更安全一点:rdfind

sudo apt install rdfind
rdfind /path/to/dir
  • 会生成 results.txt
  • 可按规则删除(硬链接、删除、忽略)

三、按“内容完全相同”查找(md5 方式,无第三方工具)

find /path -type f -exec md5sum {} \; | \
sort | \
uniq -w32 -d

说明:

  • md5sum:计算文件指纹
  • uniq -w32:比较前 32 字符(md5)
  • 只显示重复文件的 hash

查看具体文件:

find /path -type f -exec md5sum {} \; | \
sort | awk '{print $1}' | uniq -d

四、按文件名 + 大小快速预筛

find /path -type f -printf "%s %p\n" | \
sort | uniq -w1 -d

适合先缩小范围。


五、GUI 工具(不习惯命令行可选)

  • dupeGuru(跨平台)
  • BleachBit
  • Baobab(磁盘分析)

六、注意事项(很重要)

  1. 先备份再删除
  2. 硬链接文件 fdupes 默认视为重复
  3. 大目录建议先限制路径或文件类型
    find /path -type f -name "*.jpg" -exec fdupes {} +
    

如果你愿意,可以告诉我:

  • 家目录 / 服务器 / 照片 / 日志
  • 是否要 自动删除 还是只列出?

我可以给你更精确的命令

0