我必须递归地重命名一个完整的文件夹树,这样任何地方都不会出现大写字母(它是 C++ 源代码,但这不重要)。
忽略 CVS 和 Subversion 版本控制文件/文件夹的奖励积分。首选方式是 shell 脚本,因为任何 Linux 机器上都应该有 shell。
关于文件重命名的细节有一些有效的论据。
我认为应该覆盖具有相同小写名称的文件;这是用户的问题。当在忽略大小写的文件系统上 checkout 时,它也会用后者覆盖第一个。
我会考虑 A-Z 字符并将它们转换为 a-z,其他一切都只是在提出问题(至少在源代码方面)。
在 Linux 系统上运行构建需要该脚本,所以我认为应该省略对 CVS 或 Subversion 版本控制文件的更改。毕竟,这只是一个临时结账。也许“导出”更合适。
最佳答案
我还是很喜欢小一点的:
rename 'y/A-Z/a-z/' *
在不区分大小写的文件系统上,例如 OS X 的 HFS+ ,您将需要添加 -f
标志:
rename -f 'y/A-Z/a-z/' *
https://stackoverflow.com/questions/152514/
相关文章:
python - 是否可以在列表理解中使用 'else' ?
python - Django Admin - 更改标题 'Django administratio
linux - 在远程 Linux 机器上编译 C++ - "clock skew detected
python - 如何在 Python 3.x 和 Python 2.x 中使用 pip
python - 为什么使用 Python 的 os 模块方法而不是直接执行 shell 命令?
python - 如何将 Pandas 数据添加到现有的 csv 文件中?