Linux批量重新命名(mv與rename的運用)

2021-08-11 20:46:26 字數 1504 閱讀 4006

說明:

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...