linux - 如何在 Linux 上将所有文件夹和文件重命名为小写?

我必须递归地重命名一个完整的文件夹树,这样任何地方都不会出现大写字母(它是 C++ 源代码,但这不重要)。

忽略 CVS 和 Subversion 版本控制文件/文件夹的奖励积分。首选方式是 shell 脚本,因为任何 Linux 机器上都应该有 shell。

关于文件重命名的细节有一些有效的论据。

  1. 我认为应该覆盖具有相同小写名称的文件;这是用户的问题。当在忽略大小写的文件系统上 checkout 时,它也会用后者覆盖第一个。

  2. 我会考虑 A-Z 字符并将它们转换为 a-z,其他一切都只是在提出问题(至少在源代码方面)。

  3. 在 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/

相关文章:

linux - 从 URL 执行 bash 脚本

python - 是否可以在列表理解中使用 'else' ?

python - Django Admin - 更改标题 'Django administratio

linux - 在远程 Linux 机器上编译 C++ - "clock skew detected

python - 如何在 Python 3.x 和 Python 2.x 中使用 pip

linux - 如何在 Bash 中给定超时后杀死子进程?

python - 为什么使用 Python 的 os 模块方法而不是直接执行 shell 命令?

python - 如何将 Pandas 数据添加到现有的 csv 文件中?

python - 为什么在 Pylint 认为不正确的条件值中使用 len(SEQUENCE)?

python - 为什么打印到标准输出这么慢?可以提速吗?