每日一个Linux命令解析——rename

rename:rename 命令是 Linux/Unix 系统中用于批量重命名文件的工具。它根据指定的模式将一组文件的名字批量修改。

一、语法

rename [选项] '表达式' 文件名
  • '表达式':这是一个 Perl 风格的正则表达式,用于定义如何修改文件名。
  • 文件名:你想要重命名的文件或文件匹配模式(比如 *.txt)。
  • 二、选项

    • -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,但以 ; 结束。

    三、示例

    1. 将所有 .txt 文件改为 .md 文件
    rename 's/\.txt$/.md/' *.txt
  • 使用正则表达式 s/\.txt$/.md/ 将所有 .txt 文件扩展名更改为 .md。
    1. 将文件名中的空格替换为下划线
    rename 's/ /_/g' *
  • 将当前目录下所有文件名中的空格替换为下划线。
    1. 将文件名中的小写字母转换为大写字母
    rename 'y/a-z/A-Z/' *
  • 使用 y 操作符,将文件名中的所有小写字母转换为大写字母。
    1. 将 .txt 文件改为 .md 的预览,但不会实际修改文件名
    rename -n 's/.txt$/.md/' *.txt

    四、注意

    如果你的系统中没有 rename 命令,也可能是它未安装或版本不同。常见的版本包括 Perl 脚本版和 util-linux 提供的版本,它们的语法可能有所差异。

    #Linux命令#

    原文链接:,转发请注明来源!