博客
关于我
linux下rename用法--批量重命名
阅读量:791 次
发布时间:2023-02-02

本文共 1259 字,大约阅读时间需要 4 分钟。

Linux系统中,rename 命令有两个版本:C语言版本和Perl语言版本。在早期的Linux发行版中,C语言版本较为常见,但随着Perl语言的兴起,大部分工具开发者使用Perl版本进行改写,这引入了更强大的功能,例如支持正则表达式操作。

1. 确定rename命令版本

要区分命令版本,可以通过以下方式操作:

  • C语言版本:运行man rename,第一行显示RENAME(1),例如:
    RENAME(1) Linux Programmer’s Manual RENAME(1)
  • Perl版本:第一行显示RENAME(1),但带有“ Perl Programmer’s Reference Guide”说明,例如:
    RENAME(1)          Perl Programmers Reference Guide RENAME(1)

2. 两种版本的语法与功能差异

  • C语言版本

    • 命令格式为:rename from to file
    • 参数包括fromtofile,需要三个参数。例如,将文件名中的log替换为history
      rename log history log*
    • 支持文件扩展名的批量修改,例如将.jpeg扩展名改为.jpg
      rename .jpeg.jpg*.jpeg
    • 该版本适用于简单的字符串替换,无法实现复杂的文件编号重命名或动态变量操作。
  • Perl版本

    • 命令格式为:rename [perlexpr] files
    • 参数为第一个正则表达式和需要处理的文件列表。例如,批量去掉.bak扩展名:
      rename 's/\.bak$//' *.bak
    • 支持更复杂的替换规则,比如将文件名中的空格替换为下划线:
      rename 's/[ ]+/_/g' *
    • 还能进行更高级操作,如添加固定前缀或修改扩展名:
      rename 's/^/hello/' *
      rename 's/.html$.htm$/' *

3. 实用案例

  • 批量去掉文件名中的空格

    • 如果文件名中有空格,例如file name.txt,可以使用以下命令:
      rename 's/[ ]+/_/g' *
    • 或改用tr处理:
      find . -name "* *" | while read name; do mv "$name" "${name// ' '/_}"; done
  • 替换字符串或扩展名

    • 替换文件扩展名中的.zip.zip
      rename 's/.zip$/.zip/' *
    • 替换文件头部为空换成hello
      rename 's/^/hello/' *
  • 批量修改文件编号

    • 将文件名中的单数字扩展为三位:
      rename 's/^/00/' [0-9].jpgrename 's/^/0/' [0-9][0-9].jpg
    • 简单示例:将*.log改为*.history
      rename log history log*
  • 这些示例展示了rename命令在不同版本中的能力,尤其是Perl版本支持更灵活的操作,适合处理复杂的文件重命名需求。

    转载地址:http://mfzfk.baihongyu.com/

    你可能感兴趣的文章
    Linux 通过压缩包安装 MySQL 并设置远程连接教程
    查看>>
    Linux 通过监控系统内存并定时重启指定服务
    查看>>
    Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
    查看>>
    linux 配置 skywalking
    查看>>
    linux 配置 vsftpd 匿名用户可增加、修改、删除文件
    查看>>
    Linux 重置root密码和修改用户密码
    查看>>
    Linux 问题故障定位的技巧大全
    查看>>
    linux 防火墙操作
    查看>>
    Linux&Debian系统安装nginx
    查看>>
    Linux(Centos)上使用crontab实现定时任务(定时执行脚本)
    查看>>
    Linux(Centos)远程传输文件到另一台电脑机器上---指令(scp)
    查看>>
    Linux(Centos为例)使用Docker安装Label-Studio
    查看>>
    Linux(ubuntu)使用dd从iso制作win7安装u盘(读卡器一样),以及备份分区
    查看>>
    Linux***检测基础学习
    查看>>
    linux+nginx+php+mysql安装及配置
    查看>>
    Linux+oracle修改IP方法
    查看>>
    Linux-----sed 命令详解
    查看>>
    Linux---文件权限
    查看>>
    Linux--gdb/cgdb
    查看>>
    Linux--git
    查看>>