网站首页 公司概况 新闻动态 产品中心 解决方案 工程案例 人才招聘 商务留言 联系我们
公司概况
企业简介
企业文化
资质荣誉
发展历程
联系我们

河南润东电子科技有限公司
电话:0371-65861211
网址:www.rundongdianzi.com
地址:荥阳市中原西路与飞龙路交叉口创新创业综合体综合楼3C室

详细内容 >>
Linux系统中的重命名命令的用法详解
来源:   发表于:2018-11-2
Linux系统中重命名文件或者文件夹可以使用mv命令或者rename命令。

Linux系统中的重命名命令的用法详解:mv命令

mv命令既可以重命名,又可以移动文件或文件夹。

例子:将目录A重命名为B

mv A B

例子:将/a目录移动到/b下,并重命名为c

mv /a /b/c

其实在文本模式中要重命名文件或目录,只需要使用mv命令就可以了,比如说要将一个名为abc的文件重命名为1234:

mv abc 1234

注意,如果当前目录下也有个1234的文件的话,这个文件是会将它覆盖的。

Linux系统中的重命名命令的用法详解:rename命令

命令格式:

Usage: rename [-v] [-n] [-f] perlexpr [filenames]

参数说明:

v 显示文件重命名的细节

n 不执行重命名,但会模拟执行重命名,并显示会出现的情况,例如是否会有同名文件冲突等。在重命名前测试很有用。

f 强制覆盖同名文件

常用通配符说明

? 表示一个任意字符

* 表示一个或一串任意字符

常用正则表达式符号说明

^ 匹配输入的开始位置

$ 匹配输入的结尾

. 匹配除换行符外的任意字符

+ 匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"

[a-z] 表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。

[^m-z] 否定的字符区间。与不在指定区间内的字符匹配。

例子1:显示重命名细节

使用touch命令创建3个txt文件,使用rename命令批量将所有后缀为txt重命名为log

复制代码代码如下:

touch a.txt

touch b.txt

touch c.txt

rename -v 's/.txt/.log/' *.txt

v 参数作用,显示文件重命名细节

复制代码代码如下:

fdipzone@ubuntu:~$ rename -v 's/.txt/.log/' *.txt

a.txt renamed as a.log

b.txt renamed as b.log

c.txt renamed as c.log

例子2:测试重命名是否遇到同名

复制代码代码如下:

touch a.txt

touch b.txt

touch c.txt

touch a.log

touch b.log

rename -n 's/.txt/.log/' *.txt

n 参数作用,不执行重命名,但会显示如果执行重命名会出现的同名情况

复制代码代码如下:

fdipzone@ubuntu:~$ rename -n 's/.txt/.log/' *.txt

a.txt not renamed: a.log already exists

b.txt not renamed: b.log already exists

c.txt renamed as c.log

例子3:强制覆盖同名文件

复制代码代码如下:

touch a.txt

touch b.txt

touch a.log

touch b.log

rename -f 's/.txt/.log/' *.txt

如果使用 v 参数,会因为同名文件存在而重命名失败

复制代码代码如下:

fdipzone@ubuntu:~$ rename -v 's/.txt/.log/' *.txt

a.txt not renamed: a.log already exists

b.txt not renamed: b.log already exists

f 参数作用,强制覆盖同名文件

复制代码代码如下:

fdipzone@ubuntu:~$ rename -fv 's/.txt/.log/' *.txt

a.txt renamed as a.log

b.txt renamed as b.log

执行后,a.txt与b.txt重命名为a.log与b.log,覆盖原来的a.log与b.log

补充:Linux系统中的mv命令和rename命令的区别

mv一次只能重命名一个文件,而且,它是移动命令。如果tofile已经存在的话,会直接装原文件覆盖,从而造成文件的丢失。当然有选项可以对已存在的文件进行提示,但是,我表示,那个选项我还真不常用。综合这两点考虑,还是决定看看rename吧

如把文件a.txt得命名为b.txt,可以是rename 'a' 'b' a.txt (这个没有试过,看网上别人说的,是这样子的。)还可以是:rename 's/^a/b/' a.txt

在有的系统之上,用前面的那句可以通过,在有的系统之上,用后面的这个可以通过。两个不一样,一个是C的,一个是perl的。明显看出,后面这条是正则表达式的写法。具体采用哪一种方式,可以man rename,在手册页的最后一行看版本。由于我使用的系统rename的版本是Perl的,所以我只能采用后面的这一种方式。

rename 强大 的地方在于,你可以使用*,?等,对所有符合条件的文件名进行批量修改。而你在使用mv的时候,只能采用写脚本,用循环的方式来解决。

合  作  品  牌



营业执照正本    营业执照副本


Copyright@2008-2018 www.rundongdianzi.com Inc.All rights reserved. 豫ICP备18024292号

电话:0371-65861211 手机:13071036222 邮箱:henanrundongdianzi@163.com 李经理 地址: 荥阳市中原西路与飞龙路交叉口创新创业综合体综合楼3C室
★ 未经本站书面授权禁止复制或镜像,否则本站将依法追究其法律责任。豫ICP备18024292号 网站建设:千马网络
服务器,监控系统,会议系统,门禁系统,广播系统