重命名多个文件以从文件名中删除通用后缀

重命名多个文件以从文件名中删除通用后缀

我有一个目录(Linux 用户),其中有许多文件,每个文件名末尾都添加了 [!],因此每个文件读出如下:

  • foo 某物 [!].zip
  • 禁止某事 [!].zip
  • 你好世界[!].zip
  • ETC。

批量重命名这些文件名以删除结尾的 [!] 字符组合的最快方法是什么?

答案1

您可以rename像这样使用工具

rename 's/\ \[\!\]//' *.zip

我建议您首先添加-n开关,它只rename显示它将执行的操作,但不重命名任何文件。

rename -n 's/\ \[\!\]//' *.zip

请注意,这只会删除[!]文件名中第一次出现的 ,且仅当它前面有空格时,无论它是否位于文件名的末尾。


基本语法rename

rename 's/from/to/' filenames

将在所有文件名中替换from为。to

以下是详细解释:https://www.computerhope.com/unix/rename.htm


注意有两个rename命令:一个来自 util-linux 包,一个来自 perl 包。我上面提到的命令是 perl 变体。perl 变体更流行,也更有用。通常当人们谈论时,他们rename指的是 perl 变体。

在 debian(以及 ubuntu)中rename默认是 perl 变体。https://stackoverflow.com/questions/22577767/get-the-perl-rename-utility-instead-of-the-built-in-rename

在 arch linux 中rename是 util-linux 变体,而在perl-renameperl 中是变体。https://bbs.archlinux.org/viewtopic.php?id=85128

您可以按照以下方法查看您正在使用的版本:

$ rename --version
rename from util-linux 2.30.1
$ perl-rename --version
perl-rename 1.9

答案2

最简单的方法可能是使用 Krusader 文件管理器和多重重命名工具。

这将允许您重命名多个文件,甚至递归目录结构。

相关内容