批量重命名文件

此頁由 Linux Wiki用戶Chenxing 於 2012年4月21日 (星期六) 15:09 的最後更改。 在陈泓旭的工作基礎上。

從 Linux Wiki

提示:此文已超过 12 年(4609 天)未更新,如发现内容过时或有误,欢迎改进:)

有時需要對大量文件進行重命名:如把所有.jpe文件後綴改名為.jpg文件等等。很多Windows/DOS用戶可能習慣了DOS中ren命令的使用方法:

ren *.jpe *.jpg

在Linux中沒有ren命令,mv命令也不支持這種使用方法,這使得不少用戶誤以為Linux沒有批量重命名文件的功能。實際上並非如此,rename命令不僅可以輕鬆實現這一功能,而且還支持更為複雜的重命名操作。

目錄

rename

應注意,rename有兩種用法不同的版本,一種是個Perl腳本[1],rename的使用也支持Perl的正則表達式,主要見於DebianUbuntu等發行版;另一種則是util-linux的一部分,使用方式更簡單。[2]

Hint.gif
提示:
可以使用man rename來判定自己系統安裝的是什麼rename。

基於Perl的rename

該rename的基本語法是

rename perl表达式 文件名

perl表達式用於修改文件名,如s開頭的串表示替換。

舉幾個比較實用的例子:

# 删除所有的.bak后缀:
rename 's/\.bak$//' *.bak
 
# 把.jpe文件后缀修改为.jpg:
rename 's/\.jpe$/\.jpg/' *.jpe
 
# 把文件名改为小写:
rename 'y/A-Z/a-z/' *

util-linux中的rename

該rename用法較為簡單:

rename [options] expression replacement file...

如下述命令將當前目錄後綴為.htm的文件改為.html

rename .htm .html *.htm

其它工具

也有些圖形界面的批量重命名,如GPRenamekrename,可惜比較老了。最近有更新的是一款叫做Métamorphose的Python軟件[3]

另外,也有一些命令行小工具或是Nautilus插件可選用,如:Mass Rename(mrename)[4],purrr等。

相關資料

  1. Ubuntu rename的manpage
  2. util-linux-ng中rename的manpage
  3. 在 Nautilus 中執行批量重命名操作 中的回復
  4. mrename - A tool for easy and automatic renaming of many files

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
個人工具
简体繁体转换