这是一个用 Rust 编写的实用文件处理工具集合,提供了文件压缩、复制和重命名的常用功能。
本项目是一个集成了多种文件处理功能的命令行工具,使用子命令模式,包含以下主要命令:
- compress-delete:使用 7-Zip 压缩文件和目录,然后删除原始项目
- file-copy-rename:将文件从源目录复制到目标目录,使用哈希值重命名以避免重复
- find-unused-files:查找目录中未被引用的资源文件
- residue-search:查找 Windows 系统中软件卸载后的残留目录
如果你想将工具安装到系统,可以使用以下命令:
cargo install --path .安装后,scripts 命令将可在任何地方使用。
通过 cargo 直接运行(推荐开发时)
cargo run --release -- compress-delete [参数]
cargo run --release -- file-copy-rename [参数]
cargo run --release -- find-unused-files [参数]
cargo run --release -- residue-search [参数]# 构建项目
cargo build --release
# 构建后的可执行文件位于 target\release\scripts.exe功能说明:
- 将指定目录下的所有一级子目录和文件使用 7z 压缩成压缩包
- 压缩完成后自动删除对应的源文件或目录
- 智能检测 7z 安装位置
安全特性:
- 跳过隐藏文件/目录(以点开头)
- 跳过开发文件(如 .git, node_modules, target 等)
- 跳过常见压缩格式(.zip, .7z, .tar.gz 等)
- 压缩文件已存在时自动跳过
- 仅在压缩成功后才删除源文件/目录
使用方法:
# 压缩当前目录下所有项目
scripts compress-delete
# 指定工作目录
scripts compress-delete --directory ./backup
# 使用短选项
scripts compress-delete -d ./projects参数说明:
[--directory, -d] <DIRECTORY>: 要处理的目录路径,默认为当前目录
功能说明:
- 将源目录中的特定类型文件复制到目标目录
- 使用 Blake3 哈希值和 Base58 编码重命名文件,避免重复
- 支持递归扫描子目录
- 支持文件类型过滤
- 支持复制或剪切模式
安全特性:
- 跳过隐藏文件/目录
- 目标文件已存在时自动跳过
- 仅在复制成功后才删除源文件(剪切模式)
使用方法:
# 复制默认目录的默认格式文件
scripts file-copy-rename
# 复制指定目录的图片文件
scripts file-copy-rename --source ./photos --target ./backup --extensions jpg,png,gif
# 移动视频文件
scripts file-copy-rename --source ./videos --target ./archive --extensions mp4,avi --move
# 使用短选项
scripts file-copy-rename -s ./source -t ./target -e "mp4,webm" -m参数说明:
[--source, -s] <DIRECTORY>: 源目录路径,默认为./source[--target, -t] <DIRECTORY>: 目标目录路径,默认为./target[--extensions, -e] <EXTENSIONS>: 文件扩展名(逗号分隔,不带点),默认为mp4,avi,mkv,mov,wmv,flv,webm(常见视频格式)[--move, -m]: 启用移动模式(复制后删除源文件)
功能说明:
- 扫描指定目录中的资源文件,检查是否在代码文件中被引用
- 支持图片、样式、脚本等多种资源类型检查
- 提供三种状态判断:已使用、未使用、待确认
- 支持自动删除(谨慎使用)
判断规则:
- 已使用:找到相对路径引用(如
img/logo.png) - 未使用:相对路径和文件名都未找到
- 待定:仅找到文件名但未找到相对路径
使用方法:
# 检查 assets 目录中的图片资源,在 src 目录中搜索引用
scripts find-unused-files --dir ./assets --resource-extensions png,jpg --code-extensions js,ts,css
# 使用短选项
scripts find-unused-files -d ./static -r "svg,gif" -c "html,vue,jsx"
# 自动删除未使用的文件(⚠️ 危险操作,请谨慎使用)
scripts find-unused-files --dir ./public --delete参数说明:
[-d, --dir] <DIR>: 要检查的目录路径[-r, --resource-extensions] <EXTENSIONS>: 资源文件扩展名,默认为png,jpg,jpeg,svg,gif,webp[-c, --code-extensions] <EXTENSIONS>: 代码文件扩展名,默认为js,ts,jsx,tsx,vue,html,css,scss,sass,less[--delete]: 自动删除未使用的文件(⚠️ 小心使用)
- 搜索结果可能有误报,建议人工核实后再删除
- 动态引用的文件(如通过变量拼接的路径)可能无法检测到
- 建议先在不加
--delete参数的情况下运行,确认结果
功能说明:
- 扫描 Windows 系统常见目录,查找软件卸载残留目录
- 支持子串匹配,大小写不敏感
- 最多向下扫描 3 层目录
- 仅匹配目录,不匹配文件
- 计算目录递归总大小
- 显示修改时间
- 交互式多选删除
扫描位置:
- C:\Program Files
- C:\Program Files (x86)
- C:\ProgramData
- C:\Users[用户名]
- C:\Users[用户名]\AppData\Roaming
- C:\Users[用户名]\AppData\Local
使用方法:
# 查找 Chrome 相关残留
scripts residue-search --software chrome
# 使用短选项
scripts residue-search -s "visual studio"参数说明:
[--software, -s] <NAME>: 要查找的软件名称(必填)
- 删除操作不可逆,请谨慎确认选择的目录
- 建议在删除前备份重要数据
- 权限不足的目录会自动跳过
- 请确保匹配的目录确实是软件残留,避免误删除系统文件
-
⚠️ 备份重要数据:在运行删除或移动操作前,请确保已备份重要文件 -
测试运行:建议先在小批量文件上测试工具功能
-
权限控制:确保有足够的文件系统权限执行操作
-
7-Zip 安装:compress-delete 命令需要系统安装 7-Zip 并在 PATH 中,或在标准安装位置
-
不可逆操作警告:compress-delete 会永久删除源文件,请谨慎操作
-
find-unused-files 误报风险:该工具检测结果可能有误报,删除文件前必须人工验证
-
动态引用检测限制:通过变量拼接或动态加载的资源路径可能无法被正确识别
-
residue-search 删除风险:该工具会永久删除选中的目录,删除前请仔细确认匹配结果
-
软件残留识别:请确保匹配的目录确实是软件残留,避免误删除系统文件或其他重要数据
欢迎提交 Issue 和 Pull Request 来改进这些工具!