我想使用bash脚本重命名存在于多个子目录中的文件 .
我的文件在文件夹中:
./FolderA/ABCD/ABCD_Something.ctl
./FolderA/EFGH/EFGH_Something.ctl
./FolderA/WXYZ/WXYZ_Something.ctl
我想重命名所有.ctl文件同名(name.ctl) .
我尝试使用mv或重命名的几个命令,但没有工作 .
使用FolderA工作:
找到 . -name'* .ctl'-exec rename * .ctl name.ctl'{}';
要么
对于f in .//.ctl;做mv“$ f”“$ {f / * .ctl / name .ctl}”; DONE
要么
for f in $(find . -type f -name'* .ctl');做mv $ f $(echo“$ f”| sed's / * .ctl / name.ctl /'); DONE
你能帮我用bash吗?
谢谢
2 回答
您可以使用以下一行执行此操作:
x
只允许文件名是位置字符1而不是0(我认为)错误地用作参数 .试试这个:
find
应该获得你想要的所有文件,dirname
将只获取目录名称,mv
将执行重命名 . 如果're sure that you' ll名称中没有空格,则可以删除引号 .