温馨提示×

Ubuntu中重复文件怎么查找

小樊
48
2025-10-08 20:40:52
栏目: 智能运维

Ubuntu中查找重复文件的常用方法

1. 使用fdupes命令行工具(推荐)

fdupes是Ubuntu下专用于查找重复文件的轻量级命令行工具,支持递归搜索子目录、哈希校验(MD5)及交互式删除。

  • 安装:打开终端,运行sudo apt update && sudo apt install fdupes
  • 基本查找:使用fdupes -r /path/to/directory命令,-r参数表示递归搜索子目录,会列出所有重复文件的路径(按哈希值分组)。
  • 交互式删除:若需安全删除重复文件,可添加-d参数(如fdupes -r -d /path/to/directory),终端会提示选择保留的文件(输入对应编号),避免误删。
  • 自动删除(谨慎使用):添加-dN参数(如fdupes -r -dN /path/to/directory),会自动保留每组重复文件的第一个,删除其余副本。

2. 使用find与md5sum命令组合(灵活可控)

通过计算文件内容的MD5哈希值判断重复,适合需要自定义处理流程的场景。

  • 步骤1:创建临时目录用于存放重复文件(可选),如mkdir ~/temp_duplicates
  • 步骤2:运行以下命令查找并复制重复文件到临时目录:
    find /path/to/directory -type f -exec md5sum {} \; | sort | uniq -d -w 32 | cut -d ' ' -f 2- | while read file; do cp "$file" ~/temp_duplicates/; done
    解释:find查找所有文件,md5sum计算哈希值,sort | uniq -d -w 32筛选出重复的哈希值(MD5长度为32字符),cut提取文件路径,while循环将重复文件复制到临时目录。
  • 查看结果:通过ls ~/temp_duplicates/查看所有重复文件。

3. 使用图形界面工具(适合新手)

若不熟悉命令行,可选择图形化工具,操作更直观。

  • FSlint
    安装:sudo apt install fslint
    运行:终端输入fslint-gui打开图形界面,选择需扫描的目录,点击“Find”按钮即可查找重复文件(支持按文件名、内容、大小等多种方式过滤),选中重复文件后可手动删除。
  • dupeGuru
    安装:添加PPA仓库sudo add-apt-repository ppa:dupeguru/ppa,更新软件包sudo apt update,安装sudo apt install dupeguru
    运行:终端输入dupeguru打开,选择扫描模式(内容/文件名/两者),指定目录后点击“Scan”,结果中会显示相似文件,选中后可直接删除。

4. 使用rdfind工具(智能去重)

rdfind不仅能查找重复文件,还能自动用硬链接或删除替换,节省磁盘空间。

  • 安装sudo apt install rdfind
  • 基本查找:运行rdfind /path/to/directory,结果会保存到当前目录的RESULTS.txt文件中(包含重复文件列表及建议操作)。
  • 安全预览:添加-dryrun true参数(如rdfind -dryrun true /path/to/directory),仅显示重复项而不执行操作,确认无误后再进行下一步。
  • 智能处理
    • 用硬链接替换重复文件(节省空间且不影响原文件):rdfind -makehardlinks true /path/to/directory
    • 直接删除重复文件(保留第一个):rdfind -deleteduplicates true /path/to/directory

注意事项

  • 备份数据:操作前务必备份重要文件(如复制到外部硬盘或云存储),防止误删导致数据丢失。
  • 检查结果:无论使用哪种工具,删除前均需仔细核对结果(尤其是命令行工具的输出),确保未选中误文件。
  • 权限问题:若扫描系统目录(如/usr/etc),可能需要sudo权限(如sudo fdupes -r /usr),但建议优先扫描个人目录(如~/Documents~/Downloads)。

0