18个版本
0.2.2 | 2024年7月5日 |
---|---|
0.2.1 | 2023年11月14日 |
0.2.0 | 2023年7月17日 |
0.1.6 | 2023年2月6日 |
0.0.9 | 2023年1月13日 |
#209 in 文件系统
103 每月下载次数
30KB
604 行
去重器
查找、排序、过滤和删除重复文件
使用方法
Usage: deduplicator [OPTIONS] [scan_dir_path]
Arguments:
[scan_dir_path] Run Deduplicator on dir different from pwd (e.g., ~/Pictures )
Options:
-t, --types <TYPES> Filetypes to deduplicate [default = all]
-i, --interactive Delete files interactively
-s, --min-size <MIN_SIZE> Minimum filesize of duplicates to scan (e.g., 100B/1K/2M/3G/4T) [default: 1b]
-d, --max-depth <MAX_DEPTH> Max Depth to scan while looking for duplicates
--min-depth <MIN_DEPTH> Min Depth to scan while looking for duplicates
-f, --follow-links Follow links while scanning directories
-h, --help Print help information
-V, --version Print version information
--json
示例
# Scan for duplicates recursively from the current dir, only look for png, jpg & pdf file types & interactively delete files
deduplicator -t pdf,jpg,png -i
# Scan for duplicates recursively from the ~/Pictures dir, only look for png, jpeg, jpg & pdf file types & interactively delete files
deduplicator ~/Pictures/ -t png,jpeg,jpg,pdf -i
# Scan for duplicates in the ~/Pictures without recursing into subdirectories
deduplicator ~/Pictures --max-depth 0
# look for duplicates in the ~/.config directory while also recursing into symbolic link paths
deduplicator ~/.config --follow-links
# scan for duplicates that are greater than 100mb in the ~/Media directory
deduplicator ~/Media --min-size 100mb
安装
Cargo 安装
稳定版
$ cargo install deduplicator
夜间版
如果您想使用夜间版功能进行安装,可以使用
$ cargo install --git https://github.com/sreedevk/deduplicator
请注意,如果您使用版本管理器安装 Rust(如 asdf),则需要重新安装(asdf reshim rust
)。
Linux(预构建二进制文件)
您可以从发布页面下载预构建的二进制文件。下载适用于 Linux 的 deduplicator-x86_64-unknown-linux-gnu.tar.gz
。一旦您有了带有可执行文件的 tar 文件,您可以按照以下步骤进行安装
$ tar -zxvf deduplicator-x86_64-unknown-linux-gnu.tar.gz
$ sudo mv deduplicator /usr/bin/
Mac OS(预构建二进制文件)
您可以从发布页面下载预构建的二进制文件。下载适用于 Mac OS 的 deduplicator-x86_64-apple-darwin.tar.gz
tar 文件。一旦您有了带有可执行文件的 tar 文件,您可以按照以下步骤进行安装
$ tar -zxvf deduplicator-x86_64-unknown-linux-gnu.tar.gz
$ sudo mv deduplicator /usr/bin/
Windows(预构建二进制文件)
您可以从发布页面下载预构建的二进制文件。下载适用于 Windows 的 deduplicator-x86_64-pc-windows-msvc.zip
压缩文件。解压缩 zip
文件并将 deduplicator.exe
移动到系统环境变量 PATH 的一个位置。
注意:如果您遇到 msvc 错误,请从此处安装 MSCV
性能
去重器使用大小比较和fxhash(一种非加密的哈希算法)来快速扫描大量文件以查找重复项。它还高度并行(使用rayon和dashmap)。我能在约300毫秒内扫描120GB的文件(视频、PDF、图片)。查看基准测试。
基准测试
命令 | 目录大小 | 文件数量 | 平均值 [毫秒] | 最小值 [毫秒] | 最大值 [毫秒] | 相对 |
---|---|---|---|---|---|---|
去重器~/数据/tmp |
(~120G) | 721个文件 | 33.5 ± 28.6 | 25.3 | 151.5 | 1.87 ± 1.60 |
去重器~/数据/书籍 |
(~8.6G) | 1419个文件 | 24.5 ± 1.0 | 22.9 | 28.1 | 1.37 ± 0.08 |
去重器~/数据/书籍--最小-大小 10M |
(~8.6G) | 1419个文件 | 17.9 ± 0.7 | 16.8 | 20.0 | 1.00 |
去重器~/数据/ --类型 pdf,jpg,png,jpeg |
(~290G) | 104222个文件 | 1207.2 ± 37.0 | 1172.2 | 1287.7 | 67.27 ± 3.33 |
- 最后一个条目较低,因为去重器必须处理的文件数量较多(约660895个文件)。文件的平均大小很少影响去重器的性能。
这些基准测试使用hyperfine运行。以下是用于基准测试去重器的机器的规格。
OS: Arch Linux x86_64
Host: Precision 5540
Kernel: 5.15.89-1-lts
Uptime: 4 hours, 44 mins
Shell: zsh 5.9
Terminal: kitty
CPU: Intel i9-9880H (16) @ 4.800GHz
GPU: NVIDIA Quadro T2000 Mobile / Max-Q
GPU: Intel CoffeeLake-H GT2 [UHD Graphics 630]
Memory: 31731MiB (~32GiB)
屏幕截图
路线图
- Tree format output for duplicate file listing
- GUI
- Packages for different operating system repositories (currently only installable via cargo)
依赖项
~12–22MB
~292K SLoC