V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anson264556364
V2EX  ›  macOS

MAC 删除重复文件推荐

  •  
  •   anson264556364 · 290 天前 · 2429 次点击
    这是一个创建于 290 天前的主题,其中的信息可能已经有所发展或是发生改变。
    MAC 想要删除某一文件夹里面的重复文件,请问哪个工具好用?在网上搜的多是全盘搜索,想要单独删除某一文件夹里面重复的,不需其它。
    20 条回复    2024-03-14 13:04:11 +08:00
    Salud
        1
    Salud  
       290 天前
    这个时候 Python 脚本应该比较顺手了
    wowodavid
        2
    wowodavid  
       290 天前 via iPhone   ❤️ 2
    gpt 写一个脚本就行创建一个 Mac 脚本来删除指定文件夹内的重复文件(保留其中一个副本)可以通过多种方式完成,其中一种有效方式是使用基于哈希值的比较。下面的脚本使用了`bash`和`md5`命令来识别和删除重复的文件。这个脚本只会保留每个文件的一个副本,删除其他所有的重复项。

    请注意,运行此脚本之前,请确保你拥有足够的权限来读取目标文件夹和修改其内容,并且对你想要处理的数据进行备份,以避免意外的数据丢失。使用此脚本时应谨慎行事。

    ```bash
    #!/bin/bash

    # 替换下面的路径为你想要清理的文件夹路径
    TARGET_DIR="/path/to/your/target/directory"

    # 创建一个临时文件,用于存储已经处理过的文件的哈希值
    PROCESSED_HASHES=$(mktemp)

    # 遍历目标目录中的所有文件(不包括目录)
    find "$TARGET_DIR" -type f -print0 | while IFS= read -r -d '' file; do
    # 计算当前文件的 MD5 哈希值
    MD5_HASH=$(md5 -q "$file")

    # 检查这个哈希值是否已经存在于处理过的哈希值中
    if grep -q "$MD5_HASH" "$PROCESSED_HASHES"; then
    # 如果哈希值存在,这意味着我们已经遇到了一个重复的文件,可以删除它
    echo "Deleting duplicate file $file"
    rm "$file"
    else
    # 否则,将这个新的哈希值添加到已处理的哈希值中,保留这个文件
    echo "$MD5_HASH" >> "$PROCESSED_HASHES"
    fi
    done

    # 删除临时文件
    rm "$PROCESSED_HASHES"

    echo "Duplicate files deletion process is completed."
    ```

    如何使用这个脚本:

    1. 打开终端( Terminal )。
    2. 使用`nano`或你喜欢的文本编辑器,创建一个新的脚本文件,例如,你可以命名为`delete_duplicates.sh`。
    3. 复制上面的脚本内容到这个文件中。
    4. 替换`TARGET_DIR="/path/to/your/target/directory"`行中的路径为你想要查找和删除重复文件的目标文件夹。
    5. 保存并关闭文件。
    6. 让脚本具有可执行权限,通过运行`chmod +x delete_duplicates.sh`。
    7. 在终端中运行脚本:`./delete_duplicates.sh`。

    使用这个脚本之前,请确保你完全理解了它的作用,并对你的数据进行了备份。这个脚本会无声地删除文件,只在删除时打印信息。
    wowodavid
        3
    wowodavid  
       290 天前 via iPhone   ❤️ 4
    问题是,apfs 还需要删除重复文件吗?
    print
        4
    print  
       290 天前
    前几天看到的开源项目 czkawka ,可以试试看,有命令行也有 gui
    kcccc
        5
    kcccc  
       290 天前
    腾讯有个“柠檬清理”可以清理重复文件,能选择目录。
    kqq19930511
        6
    kqq19930511  
       290 天前
    Vegetable
        7
    Vegetable  
       290 天前
    显示所有重复文件 find -type f -exec md5sum {} \;|sort|uniq -w 32 --all-repeated=separate -D
    显示重复文件之一 find -type f -exec md5sum {} \;|sort|uniq -w 32 -d

    删除的话,命令拼接|cut -d ' ' -f 3- | xargs -I {} rm {}

    这么做想保留 1 个删除其他重复的命令还要更复杂的反选一下我不想了
    duxiansen
        8
    duxiansen  
       290 天前
    @wowodavid 比如两份同样的文档在不同位置,你修改了 A 地方的,等下次用的时候,却不小心用了 B 地方的
    duxiansen
        9
    duxiansen  
       290 天前
    Gemini 2: The Duplicate Finder
    xz410236056
        10
    xz410236056  
       290 天前
    腾讯青柠
    xz410236056
        11
    xz410236056  
       290 天前
    @xz410236056 #10 改名叫柠檬了
    Height
        12
    Height  
       290 天前 via iPhone
    Duplicate File Finder
    unishare
        13
    unishare  
       290 天前 via iPhone
    一直在用 Gemini ,可以指定文件夹
    ST0RMTR00PER
        14
    ST0RMTR00PER  
       290 天前
    Gemini
    maladaxia
        15
    maladaxia  
       290 天前
    dupeguru
    wclebb
        16
    wclebb  
       290 天前
    Gemini 吧,不过它是付费。
    MacPaw Way Ltd 出品,如果介意只能看别的了。
    foru17
        17
    foru17  
       290 天前
    luodan
        18
    luodan  
       289 天前
    gemini 2 和 duplicate file finder 都是付费软件. 在打折的时候$2,$3 买的
    milo7pupu
        19
    milo7pupu  
       289 天前
    删完全相同的文件,脚本就可以。如果是想清理相册,可能得用 Gemini 2 了
    MrKrabs
        20
    MrKrabs  
       289 天前
    @wowodavid 当然需要
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1744 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:30 · PVG 00:30 · LAX 08:30 · JFK 11:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.