Thanks to visit codestin.com
Credit goes to lib.rs

2 releases

0.1.1 Dec 16, 2025
0.1.0 Dec 16, 2025

#437 in Filesystem

MIT license

11KB
179 lines

FHRN - File Hash Renamer

一个高性能的 Rust 命令行工具,用于重命名文件以避免重复。它通过计算文件的 XXH64 哈希值,将文件重命名为其哈希值,并可选地删除重复文件。

功能特性

  • 🚀 高性能:使用多线程并行处理文件
  • 🔍 快速哈希:使用 XXH64 算法进行快速文件哈希计算
  • 📁 递归扫描:自动递归扫描目录中的所有文件
  • 🔧 灵活选项:支持多种运行模式和选项
  • 📊 进度显示:实时显示处理进度
  • 🧪 安全模式:支持干运行(dry run)预览

安装

从源码构建

确保已安装 Rust (1.70+) 和 Cargo:

# 克隆仓库
git clone https://github.com/moyanj/fhrn.git
cd fhrn

# 发布模式构建
cargo build --release

# 可执行文件位于 target/release/fhrn

从 crates.io 安装

cargo install fhrn

使用方法

基本用法

# 处理指定目录中的文件
fhrn /path/to/directory

# 启用详细输出
fhrn /path/to/directory -v

# 使用指定线程数
fhrn /path/to/directory -t 8

高级选项

# 干运行模式(只显示将要执行的操作,不实际执行)
fhrn /path/to/directory --dry-run

# 不删除重复文件
fhrn /path/to/directory --no-delete

# 不重命名文件(仅检测重复)
fhrn /path/to/directory --no-rename

# 组合选项
fhrn /path/to/directory -v --dry-run --threads 4

命令行选项

USAGE:
    fhrn [OPTIONS] <DIRECTORY>

ARGS:
    <DIRECTORY>    要处理的目录

OPTIONS:
    -v, --verbose          详细输出模式
    -t, --threads <NUM>    使用的线程数 [默认值: 系统逻辑核心数]
    --dry-run              干运行模式(不实际执行操作)
    --no-delete            不删除重复文件
    --no-rename            不重命名文件
    -h, --help             显示帮助信息
    -V, --version          显示版本信息

许可证

本项目基于 MIT 许可证开源 - 详见 LICENSE 文件。

作者

MoYan [email protected]

贡献

欢迎提交 Issue 和 Pull Request!

项目结构

FHRN/
├── Cargo.toml      # 项目配置和依赖
├── LICENSE         # MIT 许可证
└── src/
    └── main.rs     # 主程序代码

依赖项

  • clap - 命令行参数解析
  • indicatif - 进度条显示
  • rayon - 数据并行处理
  • walkdir - 目录递归遍历
  • xxhash-rust - XXH64 哈希算法

注意事项

  1. 使用前建议先用 --dry-run 模式预览将要执行的操作
  2. 重命名操作不可逆,请确保有文件备份
  3. 处理大量文件时可能需要较长时间和足够的内存

Dependencies

~5–17MB
~159K SLoC