rename命令可以用来修改文件名、重命名文件,批量重命名文件rename是最好的选择,下面学习阿拉小编为大家分享了rename命令的使用的方法详解,需要的朋友参考下。

rename命令怎么使用

在linux系统中重命名文件,经常用到mv命令,批量重命名文件rename是最好的选择。

linux的rename命令有两个版本,一个是c语言版本的,一个是perl语言版本的,判断方法:

输入man rename 看到第一行是:

RENAME(1) Linux Programmer’s Manual RENAME(1)

这个就是C语言版本的 ---我的就是C语言版本

而如果出现:

RENAME(1) Perl Programmers Reference Guide RENAME(1)

则是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名

Dos/Windows下,对文件改名用rename。而书上说,Linux下对文件或目录改名该用mv。却忽略了Linux下也有个叫rename的命令。都是rename,但功能上就有点差异了。Linux下的rename更像批量改名的工具,是util-linux套件中提供的。

从mv和rename命令的man文档中,可以看到如下信息:

代码如下:

mv - move (rename) files

rename - Rename files

也就是说,mv也能用于改名,但不能实现批量处理(改名时,不支持*等符号的),而rename可以。

rename使用的格式:

代码如下:

$ rename foo foo0 foo?

rename需要提供三个参数,然后才能决定最终结果。

模拟一下man文档的例子,原文件:

代码如下:

$ for i in `seq 100`;do touch foo$i;done

$ ls

foo1 foo18 foo27 foo36 foo45 foo54 foo63 foo72 foo81 foo90

foo10 foo19 foo28 foo37 foo46 foo55 foo64 foo73 foo82 foo91

foo100 foo2 foo29 foo38 foo47 foo56 foo65 foo74 foo83 foo92

foo11 foo20 foo3 foo39 foo48 foo57 foo66 foo75 foo84 foo93

foo12 foo21 foo30 foo4 foo49 foo58 foo67 foo76 foo85 foo94

foo13 foo22 foo31 foo40 foo5 foo59 foo68 foo77 foo86 foo95

foo14 foo23 foo32 foo41 foo50 foo6 foo69 foo78 foo87 foo96

foo15 foo24 foo33 foo42 foo51 foo60 foo7 foo79 foo88 foo97

foo16 foo25 foo34 foo43 foo52 foo61 foo70 foo8 foo89 foo98

foo17 foo26 foo35 foo44 foo53 foo62 foo71 foo80 foo9 foo99

改名结果:

(红色是没有改动的,蓝色是有改动的一部分)

引用

代码如下:

$ rename foo foo0 foo?

$ ls

foo01 foo100 foo20 foo30 foo40 foo50 foo60 foo70 foo80 foo90

foo02 foo11 foo21 foo31 foo41 foo51 foo61 foo71 foo81 foo91

foo03 foo12 foo22 foo32 foo42 foo52 foo62 foo72 foo82 foo92

foo04 foo13 foo23 foo33 foo43 foo53 foo63 foo73 foo83 foo93

foo05 foo14 foo24 foo34 foo44 foo54 foo64 foo74 foo84 foo94

foo06 foo15 foo25 foo35 foo45 foo55 foo65 foo75 foo85 foo95

foo07 foo16 foo26 foo36 foo46 foo56 foo66 foo76 foo86 foo96

foo08 foo17 foo27 foo37 foo47 foo57 foo67 foo77 foo87 foo97

foo09 foo18 foo28 foo38 foo48 foo58 foo68 foo78 foo88 foo98

foo10 foo19 foo29 foo39 foo49 foo59 foo69 foo79 foo89 foo99

代码如下:

$ rename foo foo0 foo??

$ ls

foo001 foo011 foo021 foo031 foo041 foo051 foo061 foo071 foo081 foo091

foo002 foo012 foo022 foo032 foo042 foo052 foo062 foo072 foo082 foo092

foo003 foo013 foo023 foo033 foo043 foo053 foo063 foo073 foo083 foo093

foo004 foo014 foo024 foo034 foo044 foo054 foo064 foo074 foo084 foo094

foo005 foo015 foo025 foo035 foo045 foo055 foo065 foo075 foo085 foo095

foo006 foo016 foo026 foo036 foo046 foo056 foo066 foo076 foo086 foo096

foo007 foo017 foo027 foo037 foo047 foo057 foo067 foo077 foo087 foo097

foo008 foo018 foo028 foo038 foo048 foo058 foo068 foo078 foo088 foo098

foo009 foo019 foo029 foo039 foo049 foo059 foo069 foo079 foo089 foo099

foo010 foo020 foo030 foo040 foo050 foo060 foo070 foo080 foo090 foo100

该例子给出了两种文件批量重命名的用法:

引用

第一个参数:被替换掉的字符串

第二个参数:替换成的字符串

第三个参数:匹配要替换的文件模式

rename支持通配符,基本的通配符有以下几个:

引用

? 可替代单个字符

* 可替代多个字符

[charset] 可替代charset集中的任意单个字符

看看*的作用:

引用

$ rm -f *

$ for i in `seq 100`;do touch foo$i;done

$ rename foo foo0 foo*

$ ls

foo01 foo018 foo027 foo036 foo045 foo054 foo063 foo072 foo081 foo090

foo010 foo019 foo028 foo037 foo046 foo055 foo064 foo073 foo082 foo091

foo0100 foo02 foo029 foo038 foo047 foo056 foo065 foo074 foo083 foo092

foo011 foo020 foo03 foo039 foo048 foo057 foo066 foo075 foo084 foo093

foo012 foo021 foo030 foo04 foo049 foo058 foo067 foo076 foo085 foo094

foo013 foo022 foo031 foo040 foo05 foo059 foo068 foo077 foo086 foo095

foo014 foo023 foo032 foo041 foo050 foo06 foo069 foo078 foo087 foo096

foo015 foo024 foo033 foo042 foo051 foo060 foo07 foo079 foo088 foo097

foo016 foo025 foo034 foo043 foo052 foo061 foo070 foo08 foo089 foo098

foo017 foo026 foo035 foo044 foo053 foo062 foo071 foo080 foo09 foo099

再看看[charset]的作用:

引用

$ rm -f *

$ for i in `seq 100`;do touch foo$i;done

$ rename foo foo0 foo[9]*

$ ls

foo09 foo099 foo17 foo26 foo35 foo44 foo53 foo62 foo71 foo80

foo090 foo1 foo18 foo27 foo36 foo45 foo54 foo63 foo72 foo81

foo091 foo10 foo19 foo28 foo37 foo46 foo55 foo64 foo73 foo82

foo092 foo100 foo2 foo29 foo38 foo47 foo56 foo65 foo74 foo83

foo093 foo11 foo20 foo3 foo39 foo48 foo57 foo66 foo75 foo84

foo094 foo12 foo21 foo30 foo4 foo49 foo58 foo67 foo76 foo85

foo095 foo13 foo22 foo31 foo40 foo5 foo59 foo68 foo77 foo86

foo096 foo14 foo23 foo32 foo41 foo50 foo6 foo69 foo78 foo87

foo097 foo15 foo24 foo33 foo42 foo51 foo60 foo7 foo79 foo88

foo098 foo16 foo25 foo34 foo43 foo52 foo61 foo70 foo8 foo89

Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,判断方法:

输入man rename 看到第一行是

RENAME(1) Linux Programmer’s Manual RENAME(1)

这个就是C语言版本的 ---我的就是C语言版本

而如果出现的是

RENAME(1) Perl Programmers Reference Guide RENAME(1)

这个就是Perl版本的了

C语言版本格式:rename 原字符串 新字符串 文件名

样例1:目录test下存在两个文件:a_01、a_02,若需要将文件名中的a替换为b,其他部分保持不变,则

(1) 若当前位于test目录下,则执行 rename a b *

(2) 若当前位于test的父目录,则执行 rename a b test/*

Perl语言版本格式:rename 's/原字符串/新字符串/' 文件名

样例2:题目如样例1,则

(1) 若当前位于test目录下,则执行 rename 's/a/b/' *

(2) 若当前位于test的父目录,则执行 rename 's/a/b' test/*

脚本实现方法:

代码如下:

find -name "a*" -print |

while read name

do

echo $name

rename 's/a/b/' $name

done

看过“ rename命令怎么使用 ”的人还看了:

5.名师指导:2015年计算机等级考试上机应试技巧

c语言中rename的用法,rename命令怎么使用相关推荐

  1. c语言define需要分号骂,C语言中define的用法

    C语言中define的用法 2016-01-06 15:00  来源: 博客园 define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便. 预处理命令以"#& ...

  2. c语言中fopen的作用,c语言中fopen的用法

    在C语言中,fopen也是一个打开文件的函数.在C语言的命令窗口中输入doc fopen或者help fopen就可以获得该函数的帮助信息.下面小编就跟你们详细介绍下c语言中fopen的用法,希望对你 ...

  3. c语言 fread读指定字节,c语言中fread的用法

    fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出.下面小编就跟你们详细介绍下c语言中fread的用法,希望对你们有用. c语言中fread的用法如下: # ...

  4. c语言中getche的用法,c语言中getch的用法

    [www.hywsbj.com--图表展板] getch()函数是无回显的从控制台取得一个字符.以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果.下面小编 ...

  5. php indexof的用法,c语言中indexof的用法有哪些

    c语言中indexof的用法有哪些 index在互联网上表示网站的默认主页.一般为 index.html index.htmindex.aspindex.php:另外的默认主页也多用default.h ...

  6. c语言中point的用法_关于C语言Switch语句,先学这些技巧够不够?

    一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...

  7. c语言中size of 用法,C语言中sizeof()的用法

    要参加软件研发的笔试(C/C++)几乎都会涉及到sizeof()的用法,我昨天也遇到了,有的也会,但是真正sizeof()的核心还是没有领会,今天上网,无聊中就看到了详细的sizeof()的阐述,现在 ...

  8. C语言中const的用法

    C语言中const的用法 基本解释         const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解co ...

  9. sql 语言中 when case 用法

    sql语言中有没有相似C语言中的switch case的语句?? 没有,用case when 来取代就行了. 比如,以下的语句显示中文年月 select getdate() as 日期,case mo ...

  10. c语言中switch的用法是什么?

    c语言中switch的用法是: 功能:switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择.例如,学生成绩分类(90为" ...

最新文章

  1. Nginx 从零搭建
  2. des加密解密JAVA与.NET互通实例
  3. 【继承、super、this、抽象类】
  4. Python读取大文件的坑“与内存占用检测
  5. Codeforces Round #323 (Div. 1) B. Once Again... 暴力
  6. 【Modern OpenGL】第一个三角形
  7. 《剑指Offer》 滑动窗口的最大值
  8. 双重检查锁定的缺点与改进
  9. 如何在html中使用 es6语法让浏览器识别
  10. wps怎么免费导出简历_稻壳儿简历免费手机,手机wps如何免费导出简历?
  11. Cortex-M0和Cortex-M0+简介
  12. MySQL5.6 GTID
  13. PaaS平台设计思想
  14. 相似度计算(2)——皮尔逊相关系数
  15. react native Animated 使用详解(基础)
  16. 解决zabbix页connot connect to database;MariaDB 导入数据时 ERROR 1118 (42000) at line 1278: Row size too larg
  17. main map java_Java从入门到实战之(12)Map示例大全(一)
  18. linux蓝牙服务关闭,使用linux的hciconfig命令配置蓝牙设备
  19. k2698场效应管参数电流_常用场效应管参数
  20. 大学物理第三版朱峰课后答案详解_大学物理答案(第三版)汇总

热门文章

  1. 人生中的一些领悟。。。
  2. 算符优先分析法的简单实现
  3. maven的pom.xml用exclusion解决版本问题
  4. AndroidStudio实现用户登录注册界面代码(二)
  5. 大话主席(superslide和 touchslide)插件的使用
  6. foobar_Foobar挑战:Google的秘密招聘流程
  7. 搭建一个解析接口教程(自己的解析接口,可自定义广告)
  8. css calc计算函数,计算高度
  9. WiFi之网络时间同步
  10. 分数化小数(用变量控制小数位数)