无法重命名已安装的随身碟的子目录

无法重命名已安装的随身碟的子目录

我构建了一个脚本来使用“mv”命令重命名特定目录的所有子目录(将第一个字母更改为大写)。不幸的是,这是不可能的,我收到了错误(下面是一个示例):

无法将“mechanics”移动到其自身的子目录“Mechanics/mechanics”

  #!/bin/bash

for name in *
    do
        if [ -d "$name" ]; then
                echo "$name"
        newname="$(tr '[:lower:]' '[:upper:]' <<< ${name:0:1})${name:1}"    
        mv "$name" "$newname"

    fi
done

我该如何解决这个问题?

答案1

假设:文件系统不区分大小写,因此Mechanicsmechanics寻址相同的目录。

可以通过临时名称重命名mechanics为:Mechanics

mv mechanics foo
mv foo Mechanics

然后该目录可能会显示为,Mechanics但您仍然可以将其称为mechanics或什至mECHaniCS

答案2

您的脚本是正确的,但您已经有了力学当前目录中的文件夹以及力学您收到错误的文件夹。

相关内容