为您找到与rename-command相关的共3个结果:
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命令怎么使用 ”
浏览量:2
下载量:0
时间:
rename命令用字符串替换的方式批量改变文件名。那么大家知道rename 命令怎么使用吗?接下来大家跟着读文网小编一起来了解一下rename 命令使用的解决方法吧。
首先来说一下mv命令,在man mv中我们可以看到对于mv命令的介绍是这样的:
mv -move(rename) files
可以看到mv命令确实有重命名的功能,但是实际应用中,它只能对单个文件重命名,命令如下:
mv [path/]oldfilename [path/]newfilename
“mv命令只能对单个文件重命名”,这实就是mv命令和rename命令的在重命名方面的根本区别。
再来说rename命令,在man rename的说明如下:
NAME
rename -Rename files
SYNOPSIS
rename from to file....
DESCRIPTION
rename will rename the specified files by replacing the first occurrence of from in their name by to.
For example, given the files foo1, ..., foo9, foo10, ..., foo278, the commands
rename foo foo0 foo?
rename foo foo0 foo??
will turn them into foo001, ..., foo009, foo010, ..., foo278.
And
rename .htm .html *.htm
will fix the extension of your html files.
可以看出rename命令是专用于文件重命名的,而且根据其后的例子可以看出,rename除了给单个文件重命名,还可以批量文件重命名。同时,值得注意一点的是,rename命令是带3个参数而不是很多人认为的2个参数。
上面的例子中给出了两种文件批量重命名的用法,而实际上,rename结合通配符使用,它的功能比上面的例子所显示的更强大。基本的通配符有以下几个:
? 可替代单个字符
* 可替代多个字符
[charset] 可替代charset集中的任意单个字符
下面以例子加以说明:
如文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278,如果使用
rename foo foo0 foo?
则它只会把foo1到foo9的文件重命名为foo01到foo09,因为?通配符只能替代单个字符,所以被重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。
再继续使用
rename foo foo0 foo??
则文件夹中的foo01到foo99的所有文件都被重命名为foo001到foo099,而foo100及其以后的文件名都不变,因为通配符?的使用,所以只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。
如果再继续使用
rename foo foo0 foo*
则foo001到foo278的所有文件都被重命名为foo0001到foo0278,因为通配符*可替代多个字符,所以,所有以foo开头的文件都被重命名了,文件名中的foo被替换为foo0。
我们再来看通配符[charset]的用法,还是继续在上面所说的文件夹中,执行如下命令
rename foo0 foo foo0[2]*
则从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。
在使用中,三种通配符可以一起结合使用,关于具体的其它用法就只有自己不断的摸索了。
看过“rename 命令怎么使用”
浏览量:3
下载量:0
时间:
不管是使用过很久的电脑还是新买的电脑,都是会出现一些问题的,最常见的要数安装软件问题了,有用户反映说每次安装软件都会提示“Command Line Option Syntax Error”错误,那么你知道安装软件提示Command Line Option Syntax Error怎么办吗?下面是读文网小编整理的一些关于安装软件提示Command Line Option Syntax Error的相关资料,供你参考。
1、以Win7系统为例:点击我的电脑,右击属性,点击高级系统设置。
2、在随即弹出的系统属性对话框内,点击环境变量。
3、双击TEMP。
4、将变量值修改为C:TEMP,点击确定。
TMP的修改和TEMP的修改相似,只是将变量值修改为C:TMP。
浏览量:2
下载量:0
时间: