Linux有问必答:如何在Linux下重命名多个文件
创始人
2024-03-01 14:51:54
0

提问:我知道我可以用mv命令重命名文件。但是当我想重命名很多文件怎么办?如果为每个文件都这么做将会是很乏味的。有没有办法一次性重命名多个文件?

在Linux中,当你想要改变一个文件名,使用mv命令就好了。然而mv不能使用通配符重命名多个文件。可以用sed、awk或者与xargs结合使用来处理多个文件的情况。然而,这些命令行即繁琐又不友好,并且如果不小心的话还很容易出错。你不会想要撤销1000个文件的错误名吧!

当你想要重命名多个文件的时候,rename 工具或许是最简单、最安全和最强大的命令行工具。这个rename命令实际上是一个Perl脚本,它预安装在所有的现在Linux发行版上。

下面是重命名命令的基本语法。

rename [-v -n -f]  

是Perl兼容正则表达式,它表示的是要重命名的文件和该怎么做。正则表达式的形式是‘s/old-name/new-name/’。

‘-v’选项会显示文件名改变的细节(比如:XXX重命名成YYY)。

‘-n’选项告诉rename命令在不实际改变名称的情况下显示文件将会重命名的情况。这个选项在你想要在不改变文件名的情况下模拟改变文件名的情况下很有用。

‘-f’选项强制覆盖存在的文件。

下面,就让我们看下rename命令的几个实际例子。

改变文件扩展名

假设你有许多.jpeg的图片文件。你想要把它们的名字改成*.jpg。下面的命令就会将*.jpeg 文件改成 *.jpg。

$ rename 's/\.jpeg$/\.jpg/' *.jpeg 

大写改成小写,反之亦然

有时你想要改变文件名的大小写,你可以使用下面的命令。

把所有的文件改成小写:

# rename 'y/A-Z/a-z/' *

把所有的文件改成大写:

# rename 'y/a-z/A-Z/' * 

更改文件名模式

现在让我们考虑更复杂的包含子模式的正则表达式。在PCRE中,子模式包含在圆括号中,$符后接上数字(比如$1,$2)。

比如,下面的命令会将‘imgNNNN.jpeg’变成‘danNNNN.jpg’。

# rename -v 's/img_(\d{4})\.jpeg$/dan_$1\.jpg/' *.jpeg

img_5417.jpeg renamed as dan_5417.jpg
img_5418.jpeg renamed as dan_5418.jpg
img_5419.jpeg renamed as dan_5419.jpg
img_5420.jpeg renamed as dan_5420.jpg
img_5421.jpeg renamed as dan_5421.jpg

比如,下面的命令会将‘img_000NNNN.jpeg’变成‘dan_NNNN.jpg’。

# rename -v 's/img_\d{3}(\d{4})\.jpeg$/dan_$1\.jpg/' *jpeg

img_0005417.jpeg renamed as dan_5417.jpg
img_0005418.jpeg renamed as dan_5418.jpg
img_0005419.jpeg renamed as dan_5419.jpg
img_0005420.jpeg renamed as dan_5420.jpg
img_0005421.jpeg renamed as dan_5421.jpg

上面的例子中,子模式‘\d{4}’会捕捉4个连续的数字,捕捉的四个数字就是$1, 将会用于新的文件名。


via: http://ask.xmodulo.com/rename-multiple-files-linux.html

译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

相关内容

奥尔特曼上诉失败,Open...
IT之家 12 月 5 日消息,科技媒体 9to5Mac 今天(1...
2025-12-05 09:47:17
民进党当局粗暴推动“中正路...
6月11日上午,国台办举行例行新闻发布会。 记者:近日,民进党当局...
2025-06-11 13:12:14
Blazor WASM P...
要更改Blazor WASM PWA应用程序的图标和名称,你可以按...
2024-12-20 18:00:55
并非所有的熊猫列都能通过传...
要更改pandas数据帧(df)的列名,可以使用df.rename...
2024-12-18 10:01:12
避免 stat 和 ren...
要避免 stat 和 rename 之间的 TOCTOU 竞态条件...
2024-12-16 00:30:56

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...