将所有以 X 结尾的文件名更改为 Y

Changing all file names that end with X to Y

我正在构建一个带有 3 个参数的脚本:文件夹、X、Y。该脚本会将所有以 X 结尾的文件重命名为相同的名称,但以 Y 结尾。我不想进入子目录。

我试过:Rrename

#!/bin/bash

for file in {""}*.{""}; do 
mv -- "$file" "${f%.}.{""}"
done

所以当我运行

Rrename thisFolder cpp c

它将所有以.cpp结尾的文件重命名为thisFolder

中与.c同名的文件

我哪里错了?

对您的尝试进行一些修改:

#!/bin/bash

for file in ""/*.""; do    
    mv -n "$file" "${file%.*}."
done

我删除了一些 {},因为它们使用不当。唯一需要它们的地方是在循环内,使您能够从文件名中删除后缀。另外,您没有在脚本中使用第三个参数。

-n 切换到 mv 可防止现有文件被覆盖。