帮助中心

如何使用mmv实现单次重命名多个文件

时间:2018-12-05 14:58 点击:

  使用Linux的用户可能知道,在操作Linux系统时重命名或者移动文件目录可以使用mv命令来实现,但是mv命令并不支持一次重命名多个文件,它只能一次重命名一个文件,如果我们需要一次重命名多个文件,那该如何操作呢?今天小编就来给大家说下,如何使用mmv命令来实现一次重命名多个文件。这里mmv命令支持所有Linux系统版本,今天小编就以Ubuntu14为例,为大家介绍下。

  第一步先进行mmv命令的安装,运行以下命令:

  $ sudo apt-get install mmv

  等待自动安装结束后即可。

  假设我们服务器中目录有以下文件需要重命名如:

  $ ls

  c1.txt c2.txt c3.txt c4.txt c5.txt

  现在需要将所有以字母“c”开头的文件重命名为“z”。这里只有三个文件,我们可以手动操作几秒钟就完成了,但是如果是上百个甚至上千个文件呢?那样要手动操作的话就是相当耗时的过程了,而且中间可能还会出现遗漏等情况,但是使用mmv命令就可以直接操作了,这里只需要运行:

  $ mmv c \ * z \#1

  之后再检查就会发现文件变成了

  $ ls

  z1.txt z2.txt z3.txt z4.txt z5.txt

  这里需要说明下上述例子中符号含义,第一个参数(a \ *)是'from'模式,第二个参数是'to'模式(b \#1)。根据上面的例子,mmv将查找任何以字母'a'开头的文件名,并根据第二个参数重命名匹配的文件,即'to'模式。我们使用通配符,例如'*','?' 和'[]',匹配一个或多个任意字符。请注意,必须转义使用通配符,否则它们将被shell扩展,mmv将无法运行它们。

  'to'模式中的'#1'是通配符索引,它匹配'from'模式中的第一个通配符,'to'模式中的'#2'将匹配第二个通配符,依此类推。在我们的例子中,我们只有一个通配符(星号),所以我们写了一个#1。并且,散列也应该被转义。此外,还可以使用引号括起模式。我们甚至可以将特定的扩展名的所有文件重命名为其他扩展名,例如将目录中所有.txt文件重命名为.doc文件格式,是需要运行:

  $ mmv \ * .txt \#1.doc

  那么上面的文件就会变成:

  $ ls

  z1.doc z2.doc z3.doc z4.doc z5.doc

  mmv命令还有一个值得注意的功能是可以使用-n选项打印输出而不是重命名文件,运行命令如下:

  $ mmv -nc \ * z \#1

  输出结果为

  c1.txt - > z1.txt

  c2.txt - > z2.txt

  c3.txt - > z3.txt

  c4.txt - > z4.txt

  c5.txt - > z5.txt

  这样,可以在重命名文件之间简单的验证mmv命令是否成功。

  最后还可以运行命令:

  $ man mmv

  这个可以查看更多mmv命令详细信息,方便大家很好的操作mmv命令。

  以上就是小编对于mmv命令实现一次重命名多个文件的介绍。