如何在Linux上使用重命名命令
掌握Linux世界的文件重命名功能,并给予 MV
-和您自己-休息。 改名
灵活,快速,有时甚至更容易。这是此命令库的教程。
mv有什么问题?
没什么错 MV
。该命令可以很好地完成工作,并且可以在所有Linux发行版,macOS和其他类似Unix的操作系统中找到该命令。因此,它始终可用。但是有时候您只需要推土机,而不是铲子。
这 MV
命令有生命的目的,那就是移动文件。可以用来移动现有文件是一个令人高兴的副作用 进入 一个具有新名称的新文件。最终结果是重命名文件,因此我们得到了想要的东西。但 MV
不是专用的文件重命名工具。
用mv重命名单个文件
使用 MV
重命名文件类型 MV
,一个空格,文件名,一个空格以及您希望文件具有的新名称。然后按Enter。
您可以使用ls
检查文件是否已重命名。
mv oldfile.txt newfile.txt
ls * .txt
用mv重命名多个文件
当您想重命名多个文件时,事情变得更加棘手。 MV
没有能力处理重命名多个文件。您必须使用一些漂亮的Bash技巧。如果您了解一些中级命令行功能,那很好,但是使用以下命令重命名多个文件很复杂 MV
与易用性形成鲜明对比 MV
重命名单个文件。
事情迅速升级。
假设我们有一个目录,其中包含各种类型的文件。其中一些文件的扩展名为“ .prog”。我们要在命令行中重命名它们,以便它们具有“ .prg”扩展名。
我们如何纠缠 MV
为我们做到这一点?让我们看一下文件。
ls * .prog -l
这是一种无需编写实际Bash脚本文件的方法。
为* .prog中的f;做MV-“ $ f”“ $ {f%.prog} .prg”
努力工作吗?让我们检查文件并查看。
ls * .pr *
所以,是的,它起作用了。它们现在都是“ .prg”文件,目录中没有“ .prog”文件。
刚才发生了什么?
那个长命令实际上是做什么的?让我们分解一下。
对于* .prog中的f;做MV-“ $ f”“ $ {f%.prog} .prg”
第一部分开始一个循环,该循环将依次处理目录中的每个“ .prog”文件。
下一部分将说明处理的内容 做。它正在使用MV
将每个文件移动到新文件。新文件将使用原始文件名(“ .prog”部分除外)命名。将会使用新的扩展名“ .prg”。
必须有一个更简单的方法
明确地。它是 改名
命令。
改名
它不是标准Linux发行版的一部分,因此您需要安装它。在不同的Linux家族中,它的名称也不同,但是它们的工作方式相同。您只需要根据所使用的Linux版本替换适当的命令名称即可。
在Ubuntu和Debian发行版中安装 改名
像这样:
sudo apt-get install重命名
在Fedora和RedHat派生的发行版中安装 姓氏
像这样。注意最初的“ p”,代表Perl。
sudo dnf安装别名
要将其安装在Manjaro Linux中,请使用以下命令。请注意,重命名命令称为 重命名
.
sudo pacman -Syu perl重命名
让我们再做一次
这次我们将使用 改名
。我们将回滚时钟,以便获得一组“ .prog”文件。
ls * .prog
现在,使用以下命令将其重命名。然后,我们将与 ls
是否有效。记住要替代 改名
如果您未使用Ubuntu或Debian衍生的Linux,请使用适合您Linux的命令名称。
重命名's / .prog / .prg /'* .prog
ls * .pr *
没问题,它们现在都是“ .prg”文件,目录中没有“ .prog”文件。
这段时间发生了什么?
让我们分三部分来说明这一点魔术。
这 第一的 部分是命令名称, 改名
(或者 姓氏
或者 重命名
,用于其他发行版)。
这 最后的 部分是 *。编
,这说明 改名
对所有“ .prog”文件进行操作。
这 中间 部分定义了我们要对每个文件名执行的工作。这 s
表示替代。第一学期(.prog
) 是什么 改名
将在每个文件名和第二个词中搜索(.prg
)是它将被替换的内容。
该命令的中间部分(即中央表达式)是Perl的“正则表达式”,它使 改名
发挥其灵活性。
更改文件名的其他部分
到目前为止,我们已经更改了文件扩展名,让我们修改文件名的其他部分。
目录中有很多C源代码文件。所有文件名都以“ slang_”为前缀。我们可以用 ls
.
ls sl * .c
我们将用“ sl_”替换所有出现的“ slang_”。该命令的格式已经为我们所熟悉。我们只是在更改搜索词,替换词和文件类型。
重命名's / slang_ / sl_'* .c
这次我们正在寻找“ .c”文件,并寻找“ slang_”。只要在文件名中找到“ slang_”,就会将其替换为“ sl_”。
我们可以通过重复执行以下命令来检查该命令的结果 ls
从上面使用相同参数的命令:
ls sl * .c
删除一部分文件名
我们可以通过不带任何替换的搜索词来删除文件名的一部分。
ls * .c
重命名's / sl _ //'* .c
ls * .c
我们可以从 ls
命令我们的“ .c”文件都以“ sl_”开头。让我们完全摆脱它。
这 改名
命令遵循与以前相同的格式。我们将寻找“ .c”文件。搜索项是“ sl_”,但没有替代项。两个反斜杠之间没有任何含义,表示空字符串。
改名
将依次处理每个“ .c”文件。它将在文件名中搜索“ sl_”。如果找到它,它将什么也不会替换。换句话说,搜索项被删除。
第二次使用 ls
命令确认已从每个“ .c”文件中删除“ sl_”前缀。
将更改限制在文件名的特定部分
让我们用 ls
查看文件名中包含字符串“ param”的文件。然后,我们将使用 改名
用字符串“ parameter”替换该字符串。我们将使用 ls
再次看到效果 改名
命令已经在那些文件上了。
ls *参数*
重命名's / param / parameter'* .c
ls *参数*
找到四个文件名中带有“ param”的文件。 param.c,param_one.c和param_two.c都在“ 开始 他们的名字。 third_param.c在“ 结尾 的名称,在扩展名之前。
这 改名
该命令将在文件名中的所有位置搜索“ param”,并在所有情况下均将其替换为“ parameter”。
第二次使用ls
命令向我们表明,这确实是发生了什么。无论“ param”是在文件名的开头还是结尾,都已被“ parameter”代替。
我们可以使用Perl的元字符来完善中间表达式的行为。元字符是代表字符位置或序列的符号。例如, ^
表示“字符串的开头” $
表示“字符串结尾”,并且 .
表示任何单个字符(除了换行符)。
我们将使用字符串元字符的开头( ^
)以将搜索范围限制在文件名的开头。
ls * param * .c
重命名's / ^ parameter / value /'* .c
ls * param * .c
ls值* .c
列出了我们之前重命名的文件,我们可以看到字符串“ parameter”在三个文件名的开头,并且在其中一个文件名的结尾。
我们的 改名
命令使用行首(^
)搜索字词“参数”之前的元字符。这说明 改名
仅考虑已在文件名开头的搜索词。如果搜索字符串“参数”在文件名中的其他位置,则将被忽略。
与检查 ls
,我们可以看到文件名中带有“参数”的文件名 结尾 的文件名尚未修改,但三个文件名中带有“ parameter”的文件名 开始 他们的名字中的搜索字符串已用替换词“值”代替。
的力量 改名
在于Perl的力量。您可以使用Perl的所有功能。
搜索分组
改名
还有更多的技巧。让我们考虑一下您的文件名中包含相似字符串的情况。它们不是完全相同的字符串,因此在这里无法进行简单的搜索和替换。
在此示例中,我们使用 ls
检查我们有哪些以“ str”开头的文件。其中有两个,string.c和strangle.c。我们可以使用称为分组的技术一次重命名两个字符串。
这个的核心表达 改名
命令将在文件名中搜索具有字符序列“ stri”的字符串 或者 “ stra”,其中这些序列后面紧跟着“ ng”。换句话说,我们的搜索字词将查找“字符串” 和 “强壮”。替代术语是“爆炸”。
ls str * .c
重命名's /(stri | stra)ng / bang /'* .c
ls ban * .c
使用ls
第二次确认string.c已经变成bang.c而strangle.c现在是bangle.c。
使用带重命名的翻译
这 改名
该命令可以对称为翻译的文件名执行操作。转换的一个简单示例是将一组文件名强制转换为大写。
在里面 改名
下面的命令请注意,我们没有使用 s /
要开始集中表达,我们正在使用 y /
。这说明改名
我们没有进行替代;我们正在翻译。
这 -
term是Perl表达式,表示从a到z序列中的所有小写字符。同样, A-Z
term表示从A到Z的序列中的所有大写字母。
该命令的中心表达式可以解释为“如果在文件名中找到了从a到z的任何小写字母,请用从A到Z的大写字符序列中的相应字符替换它们。
要强制所有“ .prg”文件的文件名都使用大写,请使用以下命令:
重命名“ y / a-z / A-Z /” * .prg
ls * .PRG
这 ls
命令显示所有“ .prg”文件名现在都是大写。实际上,严格来说,它们不再是“ .prg”文件。它们是“ .PRG”文件。 Linux区分大小写。
我们可以通过反转命令的位置来反转最后一条命令 -
和 A-Z
中央表达式中的术语。
重命名“ y / A-Z / a-z /” * .PRG
ls * .prg
您(Wo | Do)不到五分钟就学会了Perl
熟悉Perl是花费大量时间的时间。但是要开始使用省时功能 改名
命令,您根本不需要太多Perl知识就可以在功能,简单性和时间上获得巨大的好处。