Linux Shell批量重命名.c文件 如何在后缀前插入指定字符
批量修改.c文件名的解决方案
方法1:原生Shell参数扩展(无额外依赖,全平台兼容)
直接用Shell内置的参数后缀删除语法即可实现需求,不需要安装任何额外工具,所有POSIX标准的Shell(Bash/Zsh/Dash等)都支持:
for i in *.c; do mv -- "$i" "${i%.c}__swa.c" done
语法说明:${i%.c} 表示删除变量i末尾最短匹配的.c后缀,拿到不带后缀的文件名后再拼接__swa.c即可得到目标文件名。
方法2:用rename工具简化操作(需提前安装对应工具)
如果你的系统安装了rename工具,可以用更短的命令完成操作,不同系统的rename版本略有区别:
- Debian/Ubuntu等Debian系默认带Perl版本rename:
rename 's/\.c$/__swa.c/' *.c - CentOS/RHEL等红帽系默认带util-linux版本rename:
rename .c __swa.c *.c
注意事项
操作前可以先将命令中的mv替换为echo mv,执行后会先打印所有要执行的重命名操作,确认输出完全符合预期后,再去掉echo执行真实重命名,避免误改文件。
内容的提问来源于stack exchange,提问作者suliman
相关产品推荐
相关产品推荐

