我必须递归地重命名一个完整的文件夹树,这样任何地方都不会出现大写字母(它是 C++ 源代码,但这不重要)。
忽略 CVS 和 Subversion 版本控制文件/文件夹的奖励积分。首选方式是 shell 脚本,因为任何 Linux 机器上都应该有 shell。
关于文件重命名的细节有一些有效的论据。
我认为应该覆盖具有相同小写名称的文件;这是用户的问题。当在忽略大小写的文件系统上签出时,它也会用后者覆盖第一个。
我会考虑 AZ 字符并将它们转换为 az,其他一切都只是在要求问题(至少在源代码中)。
在 Linux 系统上运行构建需要该脚本,所以我认为应该省略对 CVS 或 Subversion 版本控制文件的更改。毕竟,这只是一个临时结账。也许“出口”更合适。
原文由 vividos 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
"rename"
命令的简洁版本:这避免了目录在文件之前被重命名并试图将文件移动到不存在的目录(例如
"A/A"
到"a/a"
)的问题。或者,不使用
"rename"
的更详细的版本。附言
后者允许使用移动命令更灵活(例如,
"svn mv"
)。