如何一次重命名许多文件?


43

我需要重命名一堆文件以修复其排序顺序,因此我需要能够执行一种“查找并替换”的操作,以便可以一次替换文件名的一部分。

我应该使用什么工具?我更喜欢GUI,但推荐命令行工具也可以。

Answers:


54

有几个,但我建议使用gprename 安装gprename ,这是可用性和功能之间的良好折衷。

其他工具是:重命名,krename 安装krenamepyrenamer 安装pyrenamer ,cuteRenamer,...


6
pyRenamer一点也不坏。
Skalka

6
除非在命令行上很容易进行更改,否则我经常使用pyrenamer,有时使用gprename。这些GUI最好的是内置的“预览”操作。这将节省您的头痛。
belacqua

4
+1为gprename,刚刚尝试并在5秒内完成了所需的重命名
Pisu

可耻的是gprename或pyrename都无法从命令行中获取要重命名的文件列表
artfulrobot,2014年

gprename在14.04上很棒。做300个文件夹在15秒内通过重命名正则表达式
3rgo

10

我真的很喜欢QMVrenameutils包。它使您能够使用喜爱的(基于终端的)文本编辑器来重命名文件。我更喜欢用-f do它调用它,它为您提供了带有文件名的单列(每个文件一行)。结合Vim的强大功能,它为您提供了进行大量文件名编辑所需的所有工具。

http://www.nongnu.org/renameutils/



5

如果您喜欢shell和perl正则表达式,建议使用rename。和它的名字一样简单。



3

如果您熟悉Emacs,我认为Dired可以胜任此任务。即使您通常不使用Emacs,也可能会发现Dired是一个方便的工具。

sudo aptitude install emacs23-nox

启动目录的Emacs Dired模式:

emacs -nw path/to/dir/

现在进入编辑目录模式:

C-x C-q (即Ctrl + x,然后按Ctrl + q)

现在,您可以像在每个纯文本编辑器中编辑文本一样编辑文件名。您甚至可以选择使用正则表达式替换文件名(请注意,不幸的是Emacs使用的语法与PCRE不同)。

例如,使用计数器(以1开头)重命名文件:(
M-x replace-regexp即Alt + x,然后在屏幕底部的迷你缓冲区中键入字符串“ replace-regexp”)。
替换正则表达式: DSCN\([0-9]+\).JPG
替换为: \,(format "P%04d.jpg" (1 + \#))

要在文件名中重复使用计数器:
M-x replace-regexp
替换regexp:DSCN\([0-9]+\).JPG
替换为:\,(format "P%04d.jpg" (string-to-number \1))

完成后,键入:

C-c C-c (即Ctrl + c,然后按Ctrl + c)

或者按以下顺序中止更改:

C-c Esc (即Ctrl + c后跟Esc)


2

我倾向于使用mmv,它是基于命令行的,并且表达式语法有些古怪,但是倾向于解决大多数问题。



0

在命令行上,还可以使用sed和shell魔术:

ls *.c | sed "s#\(.*\)\.c#mv \0 \1.cpp#" | sh

1
这似乎不像印刷那样起作用。在示例中,您也可以使用“#”或其他字符代替“ \”作为分隔符,以使内容更加清晰。例如`ls .c | sed's#([az])\。c#\ 1.cpp#'`(为简单起见,本示例不进行重命名,只是为了显示新文件名)
belacqua 2011年

+1我发现这是一种非常不错的方式(它可以在所有发行版中同时使用),而无需安装任何东西。但是我可能会使用该-d开关ls来避免列出目录的内容,目录的内容也可能以结尾.c(大多数情况下不是问题,但仍然..)。
2014年

0

Windows为此提供了一个非常好的程序,称为Bulk Rename Utility。这是URL:http : //www.bulkrenameutility.co.uk/Main_Intro.php

Windows 98有一个可移植的unicode版本。我把它放在我的Linux系统(Mint Maya)上的一个文件夹中,当我通过Wine运行它时,它就像一个魅力。gui非常易于使用且非常灵活。


我几乎想在葡萄酒中使用它。它比pyRenamer好得多。
Teque5'6

0

对我来说,pyRenamer表现最好。没有什么(可悲的)接近Total Commanders构建的重命名工具。pyRenamer没有与Krusader集成,但是考虑到事实是您不经常使用重命名工具,因此pyRenamer是一个很好的选择。


0

这是我使用的工具:rnm手册页)(更多示例

一些用法:

rnm file-name -ns new-filename             # single file
rnm ./* -ns '/n//i/'                       # files will be sorted and indexed.
rnm ./* -rs '/search/new/g'                # 'search' in filenames will be replaced with 'new'
rnm ./* -ns '/fn//i/' -ss 'search'         # only files/directories which contain 'search' in their name will be indexed (renamed).
rnm ./* -ns '/fn//id/' -fo                 # file only mode, directories will be ignored.
rnm ./* -ns '/fn//id/' -fo -dp -1          # recursive to subdirectories all the way.

etc...


@muru:嗯,页面出了点问题,将其更新为手册页链接。
Jahid

0

我个人将Ant Renamer与Wine一起使用,因为我尝试过的任何东西(Métamorphose,PyRenamer,GPRename,KRename)一样强大,易于安装且易于使用。而且它仍然是自由开源软件,所以我看不出问题所在。


0

Krename 是用于重命名文件的KDE GUI,通常在大多数程序包管理器中都可以找到。

此答案适用于删除可能在音乐文件(例如mp3)中找到的前导数字。但Krename,大规模重命名也是如此。

  1. 加载选定的文件或文件夹。Krename将所有文件加载到所选文件夹中,只需单击即可,Open而无需单独选择所有文件。

  2. 转到Destination选项卡以覆盖文件或将文件复制到另一个文件夹。

  3. 转到Filename选项卡,然后转到Advanced Filename选项卡。

     “高级文件名”图像显示默认设置。

  4. 通过移除令牌启动$Template窗口。在Renamed下面的窗口中进行更改。没有文件名出现,只有文件扩展名。

    3.该图显示文件名已被删除,保留了文件扩展名。

  5. 单击Insert Part of Filename...并选择要保留的文件名部分。此操作将包括所有文件,更改将在Renamed下面的窗口中显而易见。

    4.“插入文件名...的一部分”图像显示了如何通过突出显示首选部分来选择文件名。

  6. 点击OK。文件被重命名,没有前导号。

    5.最终结果显示。

  7. 最后,单击Finished右下角的。


0

Inviska Rename是在Linux(在Mac和Windows上也可以运行)上运行的更新的GUI批处理重命名实用程序。

在此处输入图片说明

除了常用的重命名功能(如用其他文本替换部分文本,插入或删除文本,重命名文件扩展名等)外,该工具还可以重命名文件夹,基于标签重命名音乐以及使用其Exif信息重命名照片。它甚至可以使用文件属性(例如创建或修改日期)进行批量重命名。

其他功能包括预览新文件名和撤消批处理重命名,我觉得这非常有用。

资源

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.