#duplicates #disk #deduplicate #remove #media #directory #removal

bin+lib backdown

智能 CLI 工具,可从您的磁盘中移除数千个重复文件

10 个版本 (4 个稳定版)

1.1.1 2023年7月1日
1.1.0 2021年12月5日
1.0.1 2021年11月17日
1.0.0 2021年10月2日
0.0.1 2020年8月21日

#416 in 文件系统

每月下载量 36 次

MITLGPL-3.0-or-later

260KB
1.5K SLoC

backdown

MIT Latest Version Build Chat on Miaou

Backdown 帮助您安全且高效地删除重复文件。

其设计基于我对随着时间的推移重复文件累积的常见模式的观察,特别是图像和其他媒体文件。

查找重复文件很简单。当有数千个重复文件时清理磁盘是难点。Backdown 带来的是选择和删除您不想保留的重复文件的一种简单方式。

Backdown 会经历以下阶段

  1. Backdown 分析您选择的目录,并找出重复文件组(内容完全相同的文件)。Backdown 忽略符号链接以及以点开头的文件或目录。
  2. Backdown 会根据分析结果向您提出几个问题。此时不会删除任何内容:您只是为删除准备文件。Backdown 从不让您为完全相同的文件组中的所有项目准备删除。
  3. 在查看准备删除的文件列表后,您确认删除操作
  4. Backdown 在磁盘上执行删除操作

看起来像什么

分析和第一个问题

screen 1

另一种类型的问题

screen 2

另一种

screen 3

另一种

screen 4

审查和确认

screen 5

此时您还可以将报告导出为 JSON 格式,并决定用保留的一个文件链接替换每个已删除的文件。

安装

从 crates.io 仓库

您必须已安装 Rust 环境: https://rustup.rs

运行

cargo install --locked backdown

从源码

您必须已安装 Rust 环境: https://rustup.rs

下载此仓库然后运行

cargo install --path .

预编译的二进制文件

除非您是 Rust 开发者,否则我建议您仅下载预编译的二进制文件,这样可以在您的磁盘上节省大量空间。

二进制文件可在 https://dystroy.org/backdown/download/ 获取

用法

删除任何类型的文件

backdown /some/directory

删除图像

backdown -i /some/directory

JSON 报告

在预览阶段之后,您可以选择将报告导出为JSON格式。这不会阻止您同时进行删除操作。

JSON看起来像这样

{
  "dup_sets": [
    {
      "file_len": 1212746,
      "files": {
        "trav-copy/2006-05 (mai)/HPIM0530.JPG": "remove",
        "trav-copy/2006-06 (juin)/HPIM0530 (another copy).JPG": "remove",
        "trav-copy/2006-06 (juin)/HPIM0530 (copy).JPG": "remove",
        "trav-copy/2006-06 (juin)/HPIM0530.JPG": "keep"
      }
    },
    {
      "file_len": 1980628,
      "files": {
        "trav-copy/2006-03 (mars)/HPIM0608.JPG": "keep",
        "trav-copy/2006-05 (mai)/HPIM0608.JPG": "remove",
        "trav-copy/2006-06 (juin)/HPIM0608.JPG": "keep"
      }
    },
    {
      "file_len": 1124764,
      "files": {
        "trav-copy/2006-05 (mai)/HPIM0529.JPG": "remove",
        "trav-copy/2006-06 (juin)/HPIM0529.JPG": "keep"
      }
    },
    {
      "file_len": 1706672,
      "files": {
        "trav-copy/2006-05 (mai)/test.jpg": "remove",
        "trav-copy/2006-06 (juin)/HPIM0598.JPG": "keep"
      }
    }
  ],
  "len_to_remove": 8450302
}

建议

  • 如果您在一个大目录上启动回滚,它可能会找到更多您怀疑的重复项。一开始不要强迫自己回答所有问题:如果您先对前十几项问题进行删除,您已经可以获得很多好处,您也可以在另一天处理其他问题。
  • 不要在您的磁盘根目录启动回滚,因为您不希望尝试处理系统资源、程序、构建工件等处的重复项。将回滚启动在您存储图片、视频或音乐的地方。
  • 回滚不是为开发目录设计的,也不尊重.gitignore规则。
  • 如果您在一个包含数百万文件且速度较慢的磁盘上的目录启动回滚,您在内容哈希过程中可能需要等待很长时间。如果您有HDD,请先尝试使用较小的目录。
  • 如果您只对图片感兴趣,请使用-i选项。

依赖项

~10–13MB
~237K SLoC