在Linux中删除重复文件可以通过多种方法实现,以下是几种常用的方法:
方法一:使用fdupes
工具
-
安装
fdupes
:sudo apt-get install fdupes # Debian/Ubuntu sudo yum install fdupes # CentOS/RHEL sudo dnf install fdupes # Fedora
-
查找并删除重复文件:
- 查找当前目录及其子目录中的重复文件:
fdupes -r /path/to/search
- 删除重复文件(保留一个副本):
fdupes -rdN /path/to/search
其中,
-r
表示递归搜索,-d
表示显示重复文件的路径,-N
表示删除重复文件。
- 查找当前目录及其子目录中的重复文件:
方法二:使用find
和md5sum
脚本
创建一个脚本来查找和删除重复文件:
#!/bin/bash if [ $# -eq 0 ]; then echo "Usage: $0 <directory>" exit 1 fi DIRECTORY=$1 TEMP_FILE=$(mktemp) find "$DIRECTORY" -type f -print0 | sort -z | md5sum | awk '/^..../ {print $2}' | cut -d'/' -f1-3 > "$TEMP_FILE" while read -r line; do if [ $(grep -c "^$line$" "$TEMP_FILE") -gt 1 ]; then echo "Duplicate files found for: $line" find "$DIRECTORY" -type f -name "$line" | tee /tmp/duplicates.txt read -p "Do you want to delete these files? (y/n): " response if [ "$response" == "y" ]; then find "$DIRECTORY" -type f -name "$line" -delete echo "Deleted duplicate files." else echo "No files were deleted." fi fi done < "$TEMP_FILE" rm "$TEMP_FILE"
-
运行脚本:
chmod +x delete_duplicates.sh ./delete_duplicates.sh /path/to/search
方法三:使用dedupe-cli
工具
-
安装
dedupe-cli
:pip install dedupe-cli
-
运行
dedupe-cli
进行去重:dedupe-cli -i /path/to/search -o /path/to/output -m 0.9
其中,
-i
指定输入目录,-o
指定输出目录,-m
指定相似度阈值(0到1之间)。
注意事项
- 在删除文件之前,请确保备份重要数据。
- 使用
fdupes
和dedupe-cli
时,可以通过调整参数来控制去重的精度和行为。 - 自定义脚本时,请仔细测试以确保不会误删文件。
通过以上方法,你可以有效地在Linux系统中查找并删除重复文件。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1362316.html