我在 Windows 中快速重命名文件的方法之一是
F2 > Rename > Tab (to next file) > Rename ...
但在 Ubuntu/Nautilus 中,我无法切换到下一个文件。但在 Linux 上,我认为一定有一个命令行替代方案。
但是,有时我可能希望更好地控制如何重命名特定文件。在这种情况下,也许能够切换到下一个文件会更好
答案1
我rename
一直都在用。它很简单,但希望您了解基本的正则表达式:
rename "s/SEARCH/REPLACE/g" *
这将在每个文件中替换字符串SEARCH
为REPLACE
(即*
)。/g
表示全局,因此如果您有SEARCH_SEARCH.jpg
,它将被重命名为REPLACE_REPLACE.jpg
。 如果您没有/g
,它只会进行一次替换,因此现在名为REPLACE_SEARCH.jpg
。 如果您想要不区分大小写,请在末尾添加/i
(即,/gi
或)。/ig
使用正则表达式,您可以做更多的事情。
请注意,这rename
是prename
(又名 Perl rename
)命令,支持完整的 Perl 正则表达式。还有一个rename
使用模式的命令,功能没有那么强大。Ubuntuprename
上默认安装该命令(与 Perl 一起),但现在您可能需要执行以下操作:
sudo apt install rename
这里有一些例子:
字首
添加:
rename 's/^/MyPrefix_/' *
document.pdf
重命名为MyPrefix_document.pdf
消除:
您还可以删除不需要的字符串。假设您有 20 个 MP3 文件,CD RIP 01 Song.mp3
并且您想删除“CD RIP”部分,并且您想使用一个命令从所有文件中删除该部分。
rename 's/^CD RIP //' *
CD RIP 01 Song.mp3
到01 Song.mp3
注意 中的额外空格'^CD RIP '
,如果没有空格,所有文件的第一个字符都会是空格。另请注意,这在没有字符的情况下也可以工作^
,但会匹配CD RIP
文件名的任何部分。^
保证它只删除位于文件开头的字符。
后缀
添加:
rename 's/$/_MySuffix/' *
document.pdf
重命名为document.pdf_MySuffix
改变:
rename 's/\.pdf$/.doc/' *
将变为Something.pdf
。Something.doc
(使用反斜杠的原因是,.
在正则表达式中是通配符,因此.pdf
匹配qPDF
,而\.pdf
仅匹配精确的字符串.pdf
。同样需要注意的是,如果您不熟悉 BASH,则必须将反斜杠放在单引号中!您不能省略引号或使用双引号,否则 bash 会尝试翻译它们。要 bash\.
和 "\."
等于.
。(但使用双引号和反斜杠,例如“\n”表示换行符,但由于"\."
不是有效的反向转义序列,因此它会转换为.
)
实际上,您甚至可以将字符串的各个部分括在引号中,而不是将整个字符串括在引号中:这与 BASH 中的和's/Search/Replace/g'
相同。您只需小心特殊字符(和空格)。s/'Search'/'Replace'/g
s/Search/Replace/g
-n
如果您不确定正则表达式是否正确,我建议使用该选项。它会显示要重命名的内容,然后退出而不执行重命名。例如:
rename -n s/'One'/'Two'/g *
这将列出如果您不在此处放置标记,它将进行的所有更改-n
。如果看起来不错,请按Up返回,然后删除 并按-n
(Enter或将其替换为-v
以输出它所做的所有更改)。
笔记:Ubuntu 17.04 以上版本默认不附带rename
,但它仍在存储库中。使用sudo apt install rename
安装它
答案2
答案3
Launchpad 上似乎有一个名为nautilus 重命名器。make install
下载脚本并解压后,您可以通过运行来安装它。它似乎有一些功能,或者如果您确实了解一些编程知识,那么您可以根据需要对其进行增强,因为它只是一个 Python 脚本。
答案4
如果你想不使用命令行来执行此操作,类似于你在 Windows 中所做的操作,请使用右箭头键代替Tab 键。这将选择下一个文件,就像 Windows 中的 Tab 键一样。