| Crates.io | rmrs |
| lib.rs | rmrs |
| version | 0.1.0 |
| created_at | 2025-09-26 02:18:20.550738+00 |
| updated_at | 2025-09-26 02:18:20.550738+00 |
| description | A Rust library for parallel processing and data processing |
| homepage | https://github.com/super1windcloud/rmrs |
| repository | https://github.com/super1windcloud/rmrs |
| max_upload_size | |
| id | 1855314 |
| size | 19,417 |
一个用 Rust 编写的跨平台 rm -rf 替代品,支持并行删除和智能安全检查。
rm -rf 快 2-5 倍# 克隆仓库
git clone https://github.com/your-username/rmrs.git
cd rmrs
# 编译发布版本
cargo build --release
# 安装到系统路径 (可选)
cargo install --path .
cargo install rmrs
# 删除单个目录
rmrs ./temp/
# 删除多个路径
rmrs ./logs/ ./cache/ ./build/
# 显示帮助信息
rmrs --help
rmrs [选项] <路径>...
选项:
-j, --jobs <num> 并行工作线程数 (默认: CPU核心数)
-f, --force 强制删除,不进行安全检查
-q, --quiet 静默模式,不显示进度
-h, --help 显示帮助信息
# 使用 8 个线程并行删除
rmrs -j 8 ./large_directory/
# 强制删除,跳过安全检查
rmrs --force /tmp/temp_files/
# 静默模式删除
rmrs --quiet ./build/ ./dist/
# 删除当前目录下的多个文件夹
rmrs node_modules/ target/ .next/
在包含 100,000 个小文件的测试中的性能对比:
| 工具 | 时间 | 速度提升 |
|---|---|---|
rm -rf |
45.2s | - |
rmrs (4线程) |
18.3s | 2.5x |
rmrs (8线程) |
12.1s | 3.7x |
测试环境: Intel i7-8700K, NVMe SSD, Linux 5.15
rmrs 会自动检测并阻止删除以下危险路径:
/, /bin, /boot, /dev, /etc, /lib, /proc, /root, /sbin, /sys, /usr, /var$HOME 下的内容# ✅ 安全 - 相对路径
rmrs ./temp/
# ✅ 安全 - 用户目录
rmrs ~/Downloads/old_files/
# ⚠️ 需要确认 - 危险绝对路径
rmrs /opt/some_app/
# 输出: 警告: 要删除绝对路径 '/opt/some_app/', 确定吗? (y/N):
# ❌ 被阻止 - 系统目录
rmrs /etc/
# 输出: 操作已取消
crossbeam-channel 实现高效的任务分发AtomicU64 进行无锁的统计信息收集流式处理: 不会一次性将大目录的所有内容加载到内存
bounded channel: 限制内存中待处理任务的数量
零拷贝: 尽可能避免不必要的数据复制
开始删除 (使用 8 个工作线程)...
删除中... 文件: 15432, 目录: 892, 速度: 2847.3/s, 错误: 0
删除完成:
文件: 15432
目录: 892
大小: 2847362048 bytes (2714.23 MB)
总耗时: 5.42秒
[Worker 3] 删除文件失败 '/path/to/locked_file': Permission denied
删除中... 文件: 8234, 目录: 445, 速度: 1823.4/s, 错误: 3
删除完成:
文件: 8234
目录: 445
大小: 1234567890 bytes (1177.38 MB)
错误: 3
总耗时: 4.52秒
Q: 权限被拒绝错误
# 解决方案: 检查文件权限或使用 sudo
sudo rmrs ./protected_files/
Q: 设备忙或资源被占用
# 解决方案: 确保没有进程正在使用这些文件
lsof +D ./directory_to_delete/
Q: 删除速度没有明显提升
# 可能原因和解决方案:
# 1. 磁盘 I/O 成为瓶颈 - 无法通过软件优化
# 2. 文件数量较少 - 并行优势不明显
# 3. 网络文件系统 - 考虑减少线程数
rmrs -j 2 ./network_mounted_dir/
# 运行测试
cargo test
# 检查代码风格
cargo clippy
# 格式化代码
cargo fmt
# 构建调试版本
cargo build
# 构建发布版本
cargo build --release
# 运行基准测试 (需要添加)
cargo bench
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature).rmrs.toml 配置文件rmrs "*.log")本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。