說明:
linux的 rename 命令有兩個版本(c語言和perl語言),早期的linux發行版基本上使用的是c語言版本,現在系統幾乎都是perl語言版本了(支援正則處理,功能更強大)[1]。可以通過命令man rename開啟rename幫助文件檢視版本,如果第一行內容如下,則是perl語言版本。
rename(1) perl programmers reference guide rename(1)
鑑於perl語言版本是主流,本文只介紹該版本下rename的用法,c語言版本操作見[1]。perl語言版本的rename命令格式如下:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
-v(verbose)列印被成功重新命名的檔案
-n(no-act)只是顯示將被重新命名的檔案,而不重新命名(重新命名之前可以用-n確認
需要重新命名的檔案)
-f(force)覆蓋已經存在的檔案
perlexprperl語言格式的正規表示式
files需要被替換的檔案(比如.c、.h),如果沒給出檔名,將從標準輸入讀
例子:linux shell 批量重新命名的方法總覽
1、刪除所有的 .bak 字尾:
rename 『s/.bak$//』 *.bak
2、把 .jpe 檔案字尾修改為 .jpg:
3、把所有檔案的檔名改為小寫:
rename 『y/a-z/a-z/』 *
4、將 abcd.jpg 重新命名為 abcd_efg.jpg:
5、將 abcd_efg.jpg 重新命名為 abcd_lmn.jpg:
6、把檔名中所有小寫字母改為大寫字母:
for var inls
; do mv -f 「$var」echo "$var" |tr a-z a-z
; done
7、把格式 *_?.jpg 的檔案改為 *_0?.jpg:
8、把檔名的前三個字母變為 vzomik:
for var inls
; do mv -f 「$var」echo "$var" |sed 's/^.../vzomik/'
; done
9、把檔名的後四個字母變為 vzomik:
for var inls
; do mv -f 「$var」echo "$var" |sed 's/....$/vzomik/'
; done
Linux批量重新命名
linux批量重新命名檔案會涉及到改變乙個字母 改變一些相連字母 改變某些位置的字母 在最前面加上某些字母 或者改變字母的大小寫。完成這裡五個方法基本上就會解決了linux批量重新命名的工作。1 我想把它們的名字的第乙個1個字母變為 q 其它的不變 root pps mailqueue for i ...
移動與重新命名檔案(mv 命令)
使用 mv 命令將檔案和目錄從乙個目錄移動到另乙個目錄,或重新命名檔案或目錄。如果將乙個檔案或目錄移動到新的目錄而不指定新的名字,那麼其保留原來的名字。注意 如果不指定 i標誌,mv 命令可能會覆蓋許多現有的檔案。i標誌會在覆蓋檔案之前提示確認。而 f標誌則不會提示確認。如果同時指定了 f和 i標誌...
Linux批量重新命名檔案
目的 批量重新命名一些檔案,這些檔案有共同特徵,比如具有相同的字母,或者沒有共同特徵,想統一重新命名,修改它們相同位置上的字元等等。1 我想把它們的名字的第乙個1個字母變為 q 其它的不變 root pps mailqueue for i in ls do mv f i echo i sed s q...