我有一个目录(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-rename
perl 中是变体。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 文件管理器和多重重命名工具。
这将允许您重命名多个文件,甚至递归目录结构。