在linux中批量重命名文件可用rename和mmv命令。rename支持正则表达式,适用于统一替换操作,如修改后缀、加前缀、去空格等;使用格式为rename 's/原内容/新内容/' 文件列表。mmv适合结构化重命名,支持通配符匹配,常用于编号重组、路径拼接等场景;语法为mmv "匹配模式" "替换模式"。rename灵活但需注意转义字符,mmv直观但需用双引号包裹模式;简单替换用rename,复杂结构用mmv。
在Linux系统中,批量重命名文件是常见的操作需求,比如整理照片、日志文件归档、数据预处理等。如果你还在手动一个一个改名,那确实有点费劲了。其实,用好 rename 和 mmv 这两个命令,可以非常高效地完成批量重命名任务。
rename 命令支持正则表达式,适合做统一格式的替换操作,比如去掉空格、添加前缀、修改扩展名等。
rename 's/原内容/新内容/' 文件列表
举个例子,把所有 .txt 文件改成 .log:
rename 's/\.txt$/.log/' *.txt
注意这里用了 Perl 兼容的正则语法,所以括号、点号这些特殊字符要加反斜杠转义。
批量去除文件名中的空格(替换为空):
rename 's/ //g' *.jpg
给文件统一加前缀:
rename 's/^/photo_/' *.jpg
修改后缀名:
rename 's/\.bak$/.old/' *.bak
⚠️ 小提示:建议先加上 -n 参数测试效果,确认没问题再执行真实操作。
mmv 是另一个专门用于批量移动、复制、追加和重命名文件的工具,尤其适合有规律的文件名转换,比如按编号排序、拼接路径等。
不过默认很多系统没装这个命令,你需要先安装:
sudo apt install mmv # Debian/Ubuntu sudo yum install mmv # CentOS
mmv "匹配模式" "替换模式"
比如,将 file1.txt, file2.txt 改为 newfile1.txt, newfile2.txt:
mmv "file*.txt" "newfile#1.txt"
这里的 #1 表示第一个通配符的内容。
给文件加固定前缀:
mmv "*.log" "backup_#1.log"
交换文件名顺序(比如从“年月日”改为“日月年”):
mmv "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" "#4#5#6#7#8#1#2#3"
这样 20240315 就会变成 15202403。
多层目录下批量重命名:
find . -name "*.tmp" -exec mmv "{}" "{}.old" \;
? 使用技巧:mmv 的模式匹配比较严格,记得引号要用双引号,避免被 shell 提前解析。
简单总结一下两者适用场景:
如果你只是想统一替换某个字符串,或者调整大小写,rename 足够了;但如果你要做复杂的编号重组、路径拼接,那就更适合用 mmv。
基本上就这些。这两个命令都不复杂,但在实际使用时容易忽略一些细节,比如是否需要转义字符、是否要测试运行等。用好了,它们能大大提升你处理文件的效率。
以上就是如何批量重命名Linux文件?rename和mmv命令高效批量改名方案的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号