linux批量改名命令 linux 批量修改

linux命令怎么把一个文档下的所有文件都改名?

1.用for灵活,文件名中字符替换,加日期等都可

成都创新互联是一家专业提供让胡路企业网站建设,专注与成都做网站、网站制作、html5、小程序制作等业务。10年已为让胡路众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

先用下面语句测试一下

for i in *aa* ;do NN=$(echo $i | sed 's/aa/bb/') ;echo "$NN";done

保险起见,只拷贝

for i in *aa* ;do NN=$(echo $i | sed 's/aa/bb/') ;cp "$i" "$NN";done

这是更名,慎用

for i in *aa* ;do NN=$(echo $i | sed 's/aa/bb/') ;mv "$i" "$NN";done

2.用rename简洁

先用-n开关测试

rename -n 's/aa/bb/' *

测试无误去掉-n进行更名

rename 's/aa/bb/' *

Linux下批量修改文件名

Linux下修改文件名有mv和rename。其中mv命令只能对单个文件重命名,这是mv命令和rename命令的在重命名方面的根本区别。

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

输入man rename 看到第一行是:

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

这个就是C语言版本的

而如果出现:

RENAME(1) Perl Programmers Reference Guide RENAME(1) 则是Perl版本的了

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

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

rename支持正则表达式

例子:

字母的替换 rename "s/AA/aa/" * // 把文件名中的AA替换成aa

修改文件的后缀 rename "s//.html//.php/" * // 把.html 后缀的改成 .php后缀

批量添加文件后缀 rename "s/$//.txt/" * // 把所有的文件名都以txt结尾

批量删除文件名 rename "s//.txt//" * // 把所有以.txt结尾的文件名的.txt删掉

Linux系统中给文件改名的命令是什么/?

linux的文件重命名非常简单。常用的是mv命令和rename命令。下面介绍一下这两个命令的用法,具体结节可以参考手册。

1、mv

mv fromfile tofile

如把文件a.txt得命名为b.txt,可以是mv a.txt b.txt。

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

2、rename

rename frompart topart filename 或者 rename 's/frompart/topart/' filename

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

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

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


本文标题:linux批量改名命令 linux 批量修改
网页路径:http://scyanting.com/article/dogopji.html