Linux怎么批量修改文件名_Linux下rename命令与通配符应用【指南】
Linux批量重命名文件有五种常用方法:一、rename命令结合正则表达式;二、for循环配合mv实现可控重命名;三、mmv命令进行模式化重命名;四、find配合-exec递归处理多级目录;五、Shell参数扩展实现无依赖轻量操作。
如果您需要在Linux系统中批量重命名多个文件,但手动逐个修改效率低下且容易出错,则可以利用rename命令结合通配符实现高效、精准的批量操作。以下是几种常用且互不依赖的批量修改文件名方法:
一、使用rename命令配合基本正则替换
rename命令支持Perl风格正则表达式,可对文件名中匹配的字符串进行全局替换,适用于统一前缀、后缀或中间字符的批量修改。
1、将当前目录下所有以“.txt”结尾的文件改为“.log”结尾:
rename 's/\.txt$/.log/' *.txt
2、删除所有文件名开头的“old_”前缀:
rename 's/^old_//' old_*
3、将文件名中的空格全部替换为下划线:
rename 's/ /_/g' *
二、使用for循环配合mv命令实现可控重命名
当rename不可用或需加入条件判断、格式化逻辑时,for循环提供更高自由度,尤其适合处理数字序号、日期格式等结构化重命名场景。
1、将当前目录所有.jpg文件按顺序重命名为img001.jpg、img002.jpg……:
counter=1; for file in *.jpg; do mv "$file" "img$(printf "%03d" $counter).jpg"; ((counter++)); done
2、为每个文件名前添加时间戳前缀(如20250520_):
for file in *; do mv "$file" "20250520_$file"; done
3、仅对大小超过1MB的文件重命名,添加“.large”后缀:
for file in *; do [[ -f "$file" ]] && [[ $(stat -c "%s" "$file") -gt 1048576 ]] && mv "$file" "${file}.large"; done
三、使用mmv命令进行模式化批量重命名
mmv命令专为批量移动与重命名设计,通过通配符模式匹配源文件与目标名称,语法简洁且支持反向引用,适合复杂映射关系。
1、安装mmv(如未预装):
sudo apt install mmv (Debian/Ubuntu)
sudo yum install mmv (CentOS/RHEL)
2、将所有“file_*.txt”重命名为“document_*.txt”:
mmv "file_*.txt" "document_#1.txt"
3、交换文件名中两个下划线分隔字段的位置(如abc_def_ghi.txt → def_abc_ghi.txt):
mm

四、使用find配合-exec执行多级目录重命名
当需递归处理子目录中符合条件的文件时,find命令可精准定位路径,再调用rename或mv完成重命名,避免遗漏深层文件。
1、递归查找并重命名所有名为“temp.log”的文件为“backup.log”:
find . -type f -name "temp.log" -exec rename 's/temp\.log$/backup.log/' {} \;
2、将所有层级下的“.bak”文件移至同级目录并改名为“.old”:
find . -type f -name "*.bak" -exec mv {} {}old \; -exec rename 's/\.bakold$/.old/' {}old \;
3、仅对最近7天内修改过的PNG文件添加“recent_”前缀:
find . -type f -name "*.png" -mtime -7 -exec rename 's/^/recent_/' {} \;
五、使用shell参数扩展进行无外部命令的轻量重命名
纯Bash内置功能即可完成简单批量操作,无需依赖rename、mmv等额外工具,适用于受限环境或脚本嵌入场景。
1、去除所有文件名末尾的“.tmp”扩展名:
for file in *.tmp; do [[ -e "$file" ]] && mv "$file" "${file%.tmp}"; done
2、将所有文件名转为小写(兼容含空格路径):
for file in *; do [[ -e "$file" ]] && mv "$file" "$(echo "$file" | tr 'A-Z' 'a-z')"; done
3、在所有文件名后追加“.processed”后缀:
for file in *; do [[ -e "$file" ]] && mv "$file" "${file}.processed"; done
上一篇 : 如何使用 position: absolute 精确居中元素
下一篇 : 手机上的“开发者选项”能乱开吗?这些功能非常实用【探索】
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!