Linux中,怎样修改文件名?

Linux中,怎样修改文件名?,第1张

      rename abcdefg abc

Linux中修改文件名,很多人甚至很多Linux书会介绍说用mv命令,其实是mv只能修改单个目标的名称,真正修改文件名还是和windows一样,使用rename,而且rename自带非常实用的批量改名功能。

先说mv修改文件名或文件夹的用法:

mv 需要修改的名称 修改后的名称

mv用于改名的用法很简单,只能用于单个目标。

下面介绍rename的使用方法。假如有foo1 foo2 foo3...到foo99的文件,如果想把数字部分都改为2个字符等宽,只需要把1位数字1、2、3...到9改为01、02、03...到09,使用mv就无法实现了,如果使用rename,输入下面命令即可:

rename foo foo0 foo?

其中?代表一个字符。除了问号,通配符还有*,代表任意字符,如:

rename .htm .html *.htm

上面命令将把*.htm文件改为*.html。

补充:如果只用于单个文件名的修改,使用方法和mv一样,可以省略第三个参数。

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一般重命名文件可以使用mv命令:

格式:mv [选项] 源文件或目录 目标文件或目录

mv命令的参数有如下这些:

-b :若需覆盖文件,则覆盖前先行备份。

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会更新(update)

-t :--target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。

使用方法:

另外,对于批量重命名文件的话,推荐使用rename命令,具体使用方法:

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

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7205594.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存