如何在linux上使用rename命令

抓住Linux世界的文件重命名引擎,让mv和你自己休息一下。重命名是灵活的,快速的,有时甚至更容易。下面是一个关于这个强大的命令的教程。...

抓住Linux世界的文件重命名引擎,让mv和你自己休息一下。重命名是灵活的,快速的,有时甚至更容易。下面是一个关于这个强大的命令的教程。

mv怎么了?

mv没什么问题。这个命令做得很好,在所有Linux发行版、macOS和其他类似Unix的操作系统中都可以找到它。所以它总是可用的。但有时你只需要推土机,而不是铲子。

mv命令在生活中有一个目的,那就是移动文件。这是一个令人高兴的副作用,它可以用来移动一个现有的文件到一个新的文件,一个新的名称。最终的效果是重命名文件,这样我们就得到了想要的。但是mv不是一个专门的文件重命名工具。

用mv重命名单个文件

要使用mv重命名文件,请键入mv、空格、文件名、空格以及希望文件具有的新名称。然后按Enter。

可以使用ls检查文件是否已重命名。

mv oldfile.txt newfile.txt ls *.txt

如何在linux上使用rename命令

用mv重命名多个文件

当您要重命名多个文件时,事情会变得更加棘手。mv无法处理多个文件的重命名。你必须使用一些漂亮的花招。如果您知道一些中级命令行fu,这很好,但是使用mv重命名多个文件的复杂性与使用mv重命名单个文件的简单性形成鲜明对比。

事态迅速升级。

假设我们有一个目录,里面有各种不同类型的文件。其中一些文件的扩展名为“.prog”。我们要在命令行中重命名它们,以便它们具有“.prg”扩展名。

我们如何说服mv为我们做这件事?我们来看看档案。

ls *.prog -l

如何在linux上使用rename命令

这里有一种方法不需要编写实际的Bash脚本文件。

for f in *.prog; do mv -- "$f" "${f%.prog}.prg"

如何在linux上使用rename命令

那有用吗?让我们查一下档案看看。

ls *.pr*

如何在linux上使用rename命令

所以,是的,成功了。它们现在都是“.prg”文件,目录中没有“.prog”文件。

刚才发生了什么?

那个长长的命令到底做了什么?我们把它分解一下。

for f in *.prog; do mv -- "$f" "${f%.prog}.prg"

第一部分启动一个循环,依次处理目录中的每个“.prog”文件。

下一部分说明处理将做什么。它使用mv将每个文件移动到一个新文件。新文件将以原始文件名命名,不包括“.prog”部分。将使用“.prg”的新扩展名。

必须有一个更简单的方法

非常肯定。这是重命名命令。

rename不是标准Linux发行版的一部分,因此需要安装它。它在不同的Linux家族中也有不同的名称,但它们的工作方式都是一样的。您只需根据所使用的Linux风格替换相应的命令名。

在Ubuntu和Debian衍生发行版中,您可以这样安装重命名:

sudo apt-get install rename

如何在linux上使用rename命令

在Fedora和RedHat派生的发行版中,您可以这样安装prename。注意首字母“p”,它代表Perl。

sudo dnf install prename

如何在linux上使用rename命令

要在ManjaroLinux中安装它,请使用以下命令。请注意,重命名命令称为perl rename。

sudo pacman -Syu perl-rename

如何在linux上使用rename命令

我们再来一次

这次我们将使用重命名。我们将把时钟向后拨,这样就有了一组“.prog”文件。

ls *.prog

如何在linux上使用rename命令

现在让我们使用下面的命令来重命名它们。然后我们会和ls确认是否有效。如果您不使用Ubuntu或Debian派生的Linux,请记住用适当的命令名替换rename。

rename 's/.prog/.prg/' *.prog ls *.pr*

如何在linux上使用rename命令

这样,它们现在都是“.prg”文件,目录中没有“.prog”文件了。

这次发生了什么?

让我们从三个部分来解释这一点。

第一部分是命令名rename(对于其他发行版,则为prename或perl rename)。

最后一部分是*.prog,它告诉rename对所有的.prog文件进行操作。

中间部分定义了我们希望对每个文件名所做的工作。s代表替代品。第一个术语(.prog)是rename将在每个文件名中搜索的内容,第二个术语(.prg)将被替换。

命令的中间部分,即中心表达式,是一个Perl“正则表达式”,它使rename命令具有了灵活性。

更改文件名的其他部分

到目前为止,我们已经更改了文件扩展名,让我们修改文件名的其他部分。

目录中有很多C源代码文件。所有文件名的前缀都是“俚语”。我们可以和ls核实一下。

ls sl*.c

如何在linux上使用rename命令

我们将把所有出现的“俚语”替换为“sl”。命令的格式我们已经很熟悉了。我们只是在更改搜索项、替换项和文件类型。

rename 's/slang_/sl_' *.c

如何在linux上使用rename命令

这次我们要查找“.c”文件,并搜索“slang”。每当在文件名中找到“slang\时,就会用“sl\替换”。

我们可以通过使用相同的参数重复上面的ls命令来检查该命令的结果:

ls sl*.c

如何在linux上使用rename命令

删除部分文件名

我们可以删除文件名的一部分,方法是不使用任何内容替换搜索词。

ls *.c rename 's/sl_//' *.c ls *.c

如何在linux上使用rename命令

我们可以从ls命令中看到,.c文件的前面都加上了“sl”。让我们把它全部处理掉。

rename命令的格式与前面的相同。我们要找“.c”文件。搜索词是“sl戡”,但没有替换词。两个反斜杠之间没有任何内容意味着什么,一个空字符串。

rename将依次处理每个“.c”文件。它将在文件名中搜索“sl”。如果找到了,就什么都没有了。换句话说,搜索词被删除。

第二次使用ls命令时,会确认已从每个“.c”文件中删除了“slè”前缀。

限制对文件名特定部分的更改

让我们使用ls来查看文件名中包含字符串“param”的文件。然后我们将使用rename将该字符串替换为字符串“parameter”。我们将再次使用ls来查看rename命令对这些文件的影响。

ls *param* rename 's/param/parameter' *.c ls *param*

如何在linux上使用rename命令

找到四个文件名中有“param”。param.c、param_one.c和param_two.c的名字开头都有“param”。第三个param.c在其名称的末尾有“param”,就在扩展名之前。

rename命令将在文件名的任何地方搜索“param”,并在所有情况下将其替换为“parameter”。

ls命令的第二次使用向我们表明,这正是所发生的事情。无论“param”位于文件名的开头还是结尾,它都已被“parameter”替换

我们可以使用Perl的元字符来细化中间表达式的行为。元字符是表示字符位置或序列的符号。例如,^表示“字符串的开始,$表示“字符串的结束”,以及。表示任何单个字符(换行符除外)。

我们将使用字符串元字符的开头(^)将搜索限制在文件名的开头。

ls *param*.c rename 's/^parameter/value/' *.c ls *param*.c ls value*.c

如何在linux上使用rename命令

我们前面重命名的文件被列出,我们可以看到字符串“parameter”位于三个文件名的开头,它位于其中一个文件名的末尾。

我们的rename命令在搜索词“parameter”之前使用了行首(^)元字符。这告诉rename,如果搜索词位于文件名的开头,则只考虑找到它。如果搜索字符串“parameter”在文件名中的任何其他位置,它将被忽略。

通过ls检查,我们可以看到文件名末尾有“parameter”的文件名没有被修改,但是名称开头有“parameter”的三个文件名的搜索字符串被替换项“value”替换

重命名的威力在于Perl的威力。Perl的所有功能都可以由您使用。

使用分组搜索

rename还有更多的秘密。让我们考虑一下这样一种情况:文件名中可能有类似字符串的文件。它们不是完全相同的字符串,因此简单的搜索和替换在这里不起作用。

在本例中,我们使用ls检查哪些文件以“str”开头。其中有两个,string.c和strangle.c。我们可以使用称为分组的技术同时重命名这两个字符串。

此rename命令的中心表达式将搜索文件名中具有字符序列“stri”或“stra”的字符串,其中这些序列后面紧跟着“ng”。换句话说,我们的搜索词将查找“string”和“strang”。替代术语是“bang”。

ls str*.c rename 's/(stri|stra)ng/bang/' *.c ls ban*.c

如何在linux上使用rename命令

第二次使用ls可以确认string.c已经变成bang.c,而string.c现在变成bangle.c。

使用带重命名的翻译

rename命令可以对名为translati***的文件名执行操作。翻译的一个简单示例是强制将一组文件名转换为大写。

请注意,在下面的rename命令中,我们不是使用s/来启动中心表达式,而是使用y/。这说明我们不是在执行替换,而是在执行翻译。

a-z是一个Perl表达式,表示从a到z的序列中的所有小写字符。类似地,a-z表示从a到z的序列中的所有大写字母。

此命令中的中心表达式可以解释为“如果在文件名中找到从a到z的任何小写字母,请用从a到z的大写字符序列中的相应字符替换它们。”

要强制所有“.prg”文件的文件名为大写,请使用以下命令:

重命名为“y/a-z/a-z/”*.prg

ls *.PRG

如何在linux上使用rename命令

ls命令告诉我们所有的“.prg”文件名现在都是大写的。事实上,严格来说,它们不再是“.prg”文件。它们是“.PRG”文件。Linux区分大小写。

我们可以通过反转a-z和a-z项在中心表达式中的位置来反转最后一个命令。

重命名为“y/A-Z/A-Z/”*.PRG

ls *.prg

如何在linux上使用rename命令

你不可能在五分钟内学会perl

掌握Perl是一种很好的方法。但是,要开始使用rename命令的省时功能,您根本不需要太多的Perl知识就可以在功能、简单性和时间方面获得巨大的好处。

  • 发表于 2021-04-03 12:15
  • 阅读 ( 278 )
  • 分类:互联网

你可能感兴趣的文章

使用powershell而不是批处理脚本的5个原因

...这可能是因为这个名字,听起来像是只有铁杆IT极客才会使用的东西。或者是因为PowerShell的好处还不清楚。可能是因为最初的学习曲线。 ...

  • 发布于 2021-03-15 16:49
  • 阅读 ( 282 )

如何在linux上安装和使用powershell

... 在本文中,我将向您展示如何在Linux上安装、运行和使用PowerShell! ...

  • 发布于 2021-03-16 02:34
  • 阅读 ( 303 )

如何在android和termux上使用linux命令行

...许您在Android设备上安装诚实善良的Linux应用程序。下面是如何使用Termux应用程序。 ...

  • 发布于 2021-03-18 07:26
  • 阅读 ( 367 )

如何在windows10上获得linux bash shell

... 如何在windows10上安装linux bash shell ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 282 )

linux下如何重命名文件

要在Linux中重命名文件吗?如果您知道如何在Windows、macOS或Chrome操作系统中完成这项工作,那么您就知道如何在这里完成这项工作。在大多数版本的Linux上,您只需右键单击一个文件并选择Rename选项。 ...

  • 发布于 2021-03-22 02:48
  • 阅读 ( 268 )

如何在linux上使用groupadd管理用户组

... 相关:如何在Linux中更改密码 ...

  • 发布于 2021-03-26 17:15
  • 阅读 ( 183 )

如何在linux中添加用户

想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...

  • 发布于 2021-03-26 23:29
  • 阅读 ( 331 )

在linux中,“bash”是什么意思?

...在这篇短文中,我们将探讨Bash是什么,它做什么,以及如何开始使用它。 ...

  • 发布于 2021-03-28 13:14
  • 阅读 ( 449 )

如何在Windows10上导出和导入linux系统

...已配置的系统,与其他计算机共享,或者只保存备份。 如何工作 导入和导出功能是在2019年5月的Windows10版本1903更新中添加的。如果尚未安装,则无法使用这些命令行选项。 您只需要为Windows wsl命令提供两个新选项:--export和--i...

  • 发布于 2021-04-03 10:24
  • 阅读 ( 186 )

如何从linux终端压缩或解压文件

...ws用户,ZIP格式将是最简单、最兼容的解决方案。 相关:如何从文件中提取文件。焦油.gz或者。焦油bz2Linux上的文件 zip、unzip和其他实用程序 您可能已经知道,Linux和类似Unix的操作系统(如macOS)具有允许您创建ZIP文件并从中提...

  • 发布于 2021-04-03 14:07
  • 阅读 ( 168 )
念念是502
念念是502

0 篇文章

相关推荐