Linux – 将目标中的所有文件夹重命名为upper

我在linux机器上的[A,B,C..Z]里面有一个文件夹(比如它的名字是../TEMPO).
每个文件夹有3个级别的文件夹.一些较深的文件夹使用小写名称,例如:

A/F/m/O
Z/t/q/S

在第4级,我想保留与现在相同名称的文件.

如何在不更改特定文件夹(../TEMPO)中存在的文件名的情况下,将文件夹名称重命名为大写?

解决方法:

验证此命令的输出

find path/to/dir -type d | awk -F"/" '$NF != toupper($NF) {l = n = $0; sub($NF "$", toupper($NF), n); print "mv " l " " n;}' | tac

如果它看起来很好,通过将结果传递给sh来执行结果

find path/to/dir -type d | awk -F"/" '$NF != toupper($NF) {l = n = $0; sub($NF "$", toupper($NF), n); print "mv " l " " n;}' | tac | sh
上一篇:搭建一个hexo博客


下一篇:Python 递归算法指归