#file-rename #rename #file-utility #file #utility #gitignore

app bumv

bumv (批量移动) 允许您使用您喜欢的编辑器来重命名文件

4个版本

0.2.1 2023年7月28日
0.2.0 2023年7月16日
0.1.1 2023年4月28日
0.1.0 2023年4月28日

#359 in 文件系统

27 每月下载量

MIT 许可证

39KB
791

bumv,批量文件重命名实用程序

bumv (批量移动) 允许您使用您喜欢的编辑器来重命名文件。它被创建是因为作者发现与在现代编辑器中编辑字符串相比,批量文件重命名非常繁琐。编辑器提供了强大的搜索和替换功能以及多光标编辑,所有这些都对批量文件重命名很有帮助。

用法

默认情况下,bumv 将允许您非递归地重命名当前目录中的文件,同时尊重git忽略定义和 .ignore 文件。在项目目录上调用时,它将在 EDITOR (默认为VS Code) 中打开以下文件列表

./Cargo.lock
./Cargo.toml
./LICENSE.txt
./README.md

假设您按如下方式编辑文件,保存并关闭您的编辑器

./Cargo.lock
./Cargo.toml
./LICENSE.txt
./README_CAREFULLY.md

bumv 将提示您确认,然后将 README.md 重命名为 README_CAREFULLY.md

警告

竞争条件或未预见的边缘情况可能导致不希望的行为。自行承担风险,并且仅在已备份的文件上使用。

安全检查

以下安全检查已实施并测试

  • 只有当输入具有相同数量的行时才接受输入。
  • 显然会导致文件覆盖的输入将立即被拒绝。
  • 为了避免由于竞争条件或重命名顺序而导致覆盖现有文件,bumv 在每次重命名操作之前都会验证目标文件名是否存在。
  • 在执行重命名之前,bumv 将验证用户提供的文件列表是否与文件系统上存在的完全匹配。

注释

  • 如果在编辑映射时更改了文件的父目录层次结构的一部分,文件将被移动到指定位置,但不会删除空目录。
  • 如果直接重命名会导致冲突,例如 file1 <-> file2,将使用临时文件来启用重命名。

选项

-n, --no-ignore    Do not observe ignore files
    --no-log       Do not write a log file
-r, --recursive    Recursively rename files in subdirectories
-c, --use-vscode   Use VS Code as editor

安装

cargo安装 bumv

关于本项目

本项目作为一个AI辅助编程的游乐场而完成。原始代码由ChatGPT 4根据松散的规格编写,令人惊讶的是,代码一经编译即可正常运行。

生成的单元测试不足。因此,代码必须重构以提高可测试性,并且手工编写了大量的测试。

必须手动添加一些安全措施和改进,这些是根据本地测试的结果和仔细考虑程序行为得出的。

在扩展代码和添加注释时,GitHub Copilot非常有帮助。

依赖项

~11–21MB
~297K SLoC