Ubuntu中删除重复文件的常用方法
fdupes是Ubuntu下最常用的重复文件查找工具,支持递归搜索子目录、交互式删除及自动保留最新文件。
sudo apt update && sudo apt install fdupes
。-r
参数递归搜索指定目录(如~/Documents
),命令为fdupes -r ~/Documents
,结果会列出所有重复文件的路径。-N
参数(保留每组重复文件的第一个,删除其余),命令为fdupes -rN ~/Documents
;若需交互式确认(逐个选择是否删除),用-d
参数,如fdupes -rd ~/Documents
。通过计算文件MD5哈希值(唯一标识文件内容)查找重复文件,适合需要精准比对的场景。
find /path/to/search -type f -exec md5sum {} \; | sort | uniq -w 32 -d
。其中-type f
限制只搜索文件,md5sum {}
计算每个文件的哈希值,sort | uniq -w 32 -d
筛选出重复的哈希值(对应重复文件)。xargs rm -v
(-v
显示删除过程),完整命令为find /path/to/search -type f -exec md5sum {} \; | sort | uniq -w 32 -d | awk '{print $2}' | xargs rm -v
(awk '{print $2}'
提取文件路径)。rdfind不仅能查找重复文件,还支持用硬链接替换(节省磁盘空间)或直接删除,适合需要优化存储结构的场景。
sudo apt install rdfind
。rdfind /path/to/search
,默认生成results.txt
报告,包含重复文件列表。-dryrun true
参数模拟删除(仅显示将要删除的文件),命令为rdfind -dryrun true /path/to/search
;确认无误后,用-deleteduplicates true
参数实际删除,命令为rdfind -deleteduplicates true /path/to/search
;若需用硬链接替换(保留一个原文件,其余指向它),用-makehardlinks true
,命令为rdfind -makehardlinks true /path/to/search
。rmlint是高性能去重工具,支持多线程(加快扫描速度)和自定义清理脚本,适合大文件量场景。
sudo apt install rmlint
。rmlint /path/to/search
,默认生成rmlint.sh
脚本(包含删除命令)。./rmlint.sh
;若需自定义清理方式(如仅删除空目录),可通过-c
参数指定配置,如rmlint -c sh:keep_all_fast /path/to/search
。Baobab是Ubuntu自带的图形化磁盘分析工具,可可视化展示磁盘空间占用,并辅助查找重复文件。
sudo apt install baobab
。FSlint是专门用于查找和清理系统垃圾(包括重复文件、临时文件等)的图形化工具,界面简洁。
sudo apt install fslint
。fslint-gui
启动工具,选择“重复文件”标签,设置扫描目录后点击“查找”;勾选需删除的重复文件,点击“删除”按钮即可。dupeGuru是跨平台(Windows/macOS/Linux)的去重工具,支持自定义文件类型过滤和快速预览,适合需要更灵活操作的用户。
sudo add-apt-repository ppa:hsoft/ppa && sudo apt update && sudo apt install dupeguru-se
。rm
)删除文件不可恢复,建议先用-d
参数(fdupes)或预览功能(图形工具)确认文件内容;图形工具通常有“回收站”功能,可临时存放删除的文件。~/test_duplicates
)中尝试,熟悉工具操作后再处理系统文件。