一、简单的单文件重命名
mv source_file_name target_file_name
二、支持批量重命名的,即通配符
rename
from : http://hi.baidu.com/yuhongchun027/item/89f9dd0ea35875143a53eee3
刚学习linux的时候,对文件重命名首先想到的就是rename命令,但是按照在windows下对文件重命名的方式试了N多次都没有反应,在网上一搜索,发现很多人都对rename命令知之甚少,甚至有一部分人说linux下没有rename命令,建议大家用mv命令。鉴于此,于是man rename一下,好好的研究了一下它的用法 ,在此对rename命令和mv命令在重命名文件方面做一个比较,有不足之处,希望各位博友指正!
首先来说一下mv命令,在man mv中我们可以看到对于mv命令的介绍是这样的:
mv -move(rename) files
可以看到mv命令确实有重命名的功能,但是实际应用中,它只能对单个文件重命名,命令如下:
mv [path/]oldfilename [path/]newfilename
“mv命令只能对单个文件重命名”,这实就是mv命令和rename命令的在重命名方面的根本区别。
再来说rename命令,在man rename的说明中可以看出rename命令是专用于文件重命名的,而且根据其后的例子可以看出,rename除了给单个文件重命名,还可以批量文件重命名。同时,值得注意一点的是,rename命令是带3个参数而不是很多人认为的2个参数.
上面的例子中给出了两种文件批量重命名的用法,而实际上,rename结合通配符使用,它的功能比上面的例子所显示的更强大,这个大家可在实际工作中熟悉使用,下面说下它的基础用法:
rename 批量修改文件名语法: rename from to file该命令的各选项含义如下:
from 源字符。to 目标字符。file 要改名的文件 rename .rm .rmvb * // 把所有文件的后辍由rm改为rmvbrename 'tr/A-Z/a-z/' *// 把所有文件名中的大写改为小写
3、rename的版本
from : http://blog.csdn.net/zgl_dm/article/details/6627411
Linux 下的 rename 命令有两个版本:
- C语言版本
- 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/*
样例3:若改用脚本,可如下:
- find -name "a*" -print |
- while read name; do
- echo $name
- rename 's/a/b/' $name
- done
www.blog.csdn.net/zgl_dm 如需转载,请标明出处。
最后,该如何判断rename是哪个版本,可通过 man rename 查看。若第一行为 RENAME(1) Linux Programmer’s Manual RENAME(1),则是 C语言版本的,若出现 RENAME(1) Perl Programmers Reference Guide RENAME(1)则为 Perl 版本的。