rename:rename 命令是 Linux/Unix 系统中用于批量重命名文件的工具。它根据指定的模式将一组文件的名字批量修改。
一、语法
rename [选项] '表达式' 文件名
二、选项
- -v, --verbose 详细信息:打印成功重命名的文件名。
- -0, --null 使用空字符:在从标准输入读取时,使用 \0 作为记录分隔符。
- -n, --nono 不执行操作:打印将要重命名的文件名,但不实际重命名。
- -f, --force 强制执行:允许覆盖已存在的文件。
- --path, --fullpath 重命名完整路径:包括路径中的目录部分(默认选项)。
- -d, --filename, --nopath, --nofullpath 不重命名目录:仅重命名路径中的文件名部分。
- -h, --help 帮助:打印 SYNOPSIS 和 OPTIONS 的帮助信息。
- -m, --man 手册:打印手册页。
- -V, --version 版本:显示版本号。
- -u, --unicode [encoding] Unicode 处理:在运行用户提供的代码时,将文件名视为 Perl(Unicode)字符串。如果提供了 encoding,则解码/编码文件名。encoding 是可选的:如果省略,下一个参数应该是以 - 开头的选项,例如 -e。
- -e 表达式:用于处理文件名的代码。可以多次使用,以构建代码(类似于 perl -e)。如果没有 -e,则第一个参数将作为代码使用。
- -E 语句:用于处理文件名的代码,类似于 -e,但以 ; 结束。
三、示例
- 将所有 .txt 文件改为 .md 文件:
rename 's/\.txt$/.md/' *.txt
- 将文件名中的空格替换为下划线:
rename 's/ /_/g' *
- 将文件名中的小写字母转换为大写字母:
rename 'y/a-z/A-Z/' *
- 将 .txt 文件改为 .md 的预览,但不会实际修改文件名
rename -n 's/.txt$/.md/' *.txt
四、注意
如果你的系统中没有 rename 命令,也可能是它未安装或版本不同。常见的版本包括 Perl 脚本版和 util-linux 提供的版本,它们的语法可能有所差异。