我在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