linux

Linux磁盘清理:如何查找并删除重复文件

小樊
49
2025-05-08 13:57:44
栏目: 智能运维

在Linux系统中,查找并删除重复文件可以通过多种方法实现。以下是几种常用的方法:

方法一:使用fdupes工具

fdupes是一个专门用于查找和删除重复文件的工具。你可以通过以下步骤来安装和使用它:

  1. 安装fdupes

    sudo apt-get install fdupes  # Debian/Ubuntu
    sudo yum install fdupes      # CentOS/RHEL
    sudo dnf install fdupes      # Fedora
    
  2. 查找重复文件

    fdupes -r /path/to/search
    

    其中,-r选项表示递归搜索子目录。

  3. 删除重复文件: 你可以使用-N选项来删除重复文件,但在此之前最好先确认哪些文件是重复的。

    fdupes -r -N /path/to/search
    

    这会提示你确认是否删除每个重复文件组中的额外文件。

方法二:使用findmd5sum命令

如果你不想安装额外的工具,可以使用findmd5sum命令来查找和删除重复文件:

  1. 查找重复文件

    find /path/to/search -type f -exec md5sum {} \; | sort | uniq -d -w 32
    

    这条命令会计算每个文件的MD5哈希值,并按哈希值排序,然后使用uniq -d -w 32查找重复的哈希值。

  2. 删除重复文件: 你可以编写一个脚本来删除重复文件。以下是一个示例脚本:

    #!/bin/bash
    
    find /path/to/search -type f -exec md5sum {} \; | sort | uniq -d -w 32 | while read hash; do
        files=$(echo "$hash" | awk '{print $2}')
        first_file=$(echo "$files" | head -n 1)
        for file in $files; do
            if [ "$file" != "$first_file" ]; then
                rm "$file"
                echo "Deleted: $file"
            fi
        done
    done
    

    将上述脚本保存为delete_duplicates.sh,然后运行:

    chmod +x delete_duplicates.sh
    ./delete_duplicates.sh
    

方法三:使用rdupes工具

rdupes是另一个用于查找和删除重复文件的工具,它提供了更多的功能和更好的用户界面:

  1. 安装rdupes

    sudo apt-get install rdupes  # Debian/Ubuntu
    sudo yum install rdupes      # CentOS/RHEL
    sudo dnf install rdupes      # Fedora
    
  2. 查找重复文件

    rdupes -r /path/to/search
    
  3. 删除重复文件

    rdupes -r -n /path/to/search  # 干运行,查看将要删除的文件
    rdupes -r -d /path/to/search  # 删除重复文件
    

注意事项

通过以上方法,你可以有效地查找并删除Linux系统中的重复文件。

0
看了该问题的人还看了