一、命令简介
rename
命令用于批量重命名文件或目录。使用正则表达式
来描述替换规则。
二、命令参数
rename [选项] <规则替换语法> <文件或目录列表>
选项:
-
-v, --verbose
: 显示重命名的详细信息。 -
-n, --no-act
: 模拟运行,不实际执行重命名操作。 -
-f, --force
: 强制执行,覆盖已存在的文件。 -
-h, --help
: 显示帮助信息。
规则替换语法:
's/原始内容/替换内容/'
-
's'
: 表示进行替换操作。 -
/原始内容/
: 可以是一个正则表达式,用来匹配原始内容文本。 -
/替换内容/
: 是要替换成的新内容。
在Linux命令中sed
、awk
和rename
等经常用到规则替换操作。
三、命令示例
模拟修改
# 原始文件名 ~/docs/tmp/探索rename命令 ❯ ls h1.mp3 h2.mp3 h3.mp3 # 模拟修改 ~/docs/tmp/探索rename命令 ❯ rename -n 's/mp3$/mp4/' * rename(h1.mp3, h1.mp4) rename(h2.mp3, h2.mp4) rename(h3.mp3, h3.mp4) # 不会真的改变文件名 ~/docs/tmp/探索rename命令 ❯ ls h1.mp3 h2.mp3 h3.mp3
批量修改文件后缀
# 原始文件名 ~/docs/tmp/探索rename命令 ❯ ls h1.mp3 h2.mp3 h3.mp3 mp3试听.mp3 # 使用-v显示修改过程 使用$只匹配后缀 ~/docs/tmp/探索rename命令 ❯ rename -v 's/mp3$/mp4/' * h1.mp3 renamed as h1.mp4 h2.mp3 renamed as h2.mp4 h3.mp3 renamed as h3.mp4 mp3试听.mp3 renamed as mp3试听.mp4 # 文件名确实被修改了 ~/docs/tmp/探索rename命令 ❯ ls h1.mp4 h2.mp4 h3.mp4 mp3试听.mp4
注意:匹配
mp3$
而不是mp3
。更多示例
# 将所有 .txt 文件扩展名更改为 .log rename 's/\.txt$/.log/' *.txt # 将文件名中的 old 替换为 new rename 's/old/new/' *old* # 将所有文件名中的空格替换为下划线 rename 's/ /_/g' * # 将文件名中的大写字母转换为小写字母 rename 'y/A-Z/a-z/' * # 将文件名中的数字 1 替换为数字 2 rename 's/1/2/' * # 在文件名前添加日期(假设今天是2023年4月1日) rename 's/^/20230401-/' * # 删除文件名中的前缀(例如删除所有文件名中的 prefix_) rename 's/^prefix_//' * # 将文件名中的多个连续空格替换为一个空格 rename 's/ +/ /g' * # 将文件名中的特定字符(例如 @)替换为其他字符(例如 #) rename 's/@/#/g' * # 将所有 .jpg 文件名中的 image 替换为 photo rename 's/image/photo/' *.jpg
注意事项
- 使用
rename
命令时要小心,特别是在使用模式匹配时,确保模式匹配准确,避免意外重命名文件。 - 可以通过添加
-n
选项来进行测试,查看实际执行时的操作,避免意外情况发生。 - 在使用正则表达式时要注意转义特殊字符,以避免意外匹配。
视频教程:
批量文件重命名命令:rename_哔哩哔哩_bilibili
本文共 546 个字数,平均阅读时长 ≈ 2分钟
评论 (0)