ubuntu 文件重命名

一 rename常用方式,文件名轉換,更多的參數和實例,在終端使用"man rename"來獲取.

1) 去掉所有 .bak 文件的擴展名:
rename 's/\.bak$//' *.bak
2) 把所有文件的後輟由rm改爲rmvb:

rename 's/\.rm$/\.rmvb/' *.rm

3) 把所有文件名內含有大小字母的,修改爲小寫字母:

rename 'y/A-Z/a-z/' *
4) 用下劃線替代文件名中所有空格,(連續多個空格視爲1個空格):

rename 's/[ ]+/_/g' *

二 Ubuntu下創建、重命名、刪除文件及文件夾,
mkdir 目錄名 ——創建一個目錄
rmdir 空目錄名 ——刪除一個空目錄
rm 文件名 文件名 ——刪除一個文件或多個文件
rm -rf 非空目錄名 ——刪除一個非空目錄下的一切
touch 文件名 ——創建一個空文件

重命名文件(夾) / 移動文件(夾)到指定文件夾
執行格式: mv source destination

舉例:
mv file1 file2 表示將文件 file1,更改文件名爲 file2。 mv file1 dir1 將文件 file1,移到目錄 dir1下,文件名仍爲 file1。 mv dir1 dir2 若目錄 dir2 存在,則將目錄 dir1,及其所有文件和子目錄,移到目錄 dir2 下,新目錄名稱爲 dir1。若目錄 dir2 不存在,則將dir1,及其所有文件和子目錄,更改爲目錄 dir2。

rename命令是專用於文件重命名的,而且根據其後的例子可以看出,rename除了給單個文件重命名,還可以批量文件重命名。同時,值得注意一點的是,rename命令是帶3個參數而不是很多人認爲的2個參數。
上面的例子中給出了兩種文件批量重命名的用法,而實際上,rename結合通配符使用,它的功能比上面的例子所顯示的更強大。基本的通配符有以下幾個:
? 可替代單個字符
* 可替代多個字符
[charset] 可替代charset集中的任意單個字符

下面以例子加以說明:
如文件夾中有這些文件foo1, ..., foo9, foo10, ..., foo278,如果使用
rename foo foo0 foo?
則它只會把foo1到foo9的文件重命名爲foo01到foo09,因爲?通配符只能替代單個字符,所以被重命名的文件只是有4個字符長度名稱的文件,文件名中的foo被替換爲foo0。
再繼續使用
rename foo foo0 foo??
則文件夾中的foo01到foo99的所有文件都被重命名爲foo001到foo099,而foo100及其以後的文件名都不變,因爲通配符?的使用,所以只重命名5個字符長度名稱的文件,文件名中的foo被替換爲foo0。
如果再繼續使用
rename foo foo0 foo*
則foo001到foo278的所有文件都被重命名爲foo0001到foo0278,因爲通配符*可替代多個字符,所以,所有以foo開頭的文件都被重命名了,文件名中的foo被替換爲foo0。
我們再來看通配符[charset]的用法,還是繼續在上面所說的文件夾中,執行如下命令
rename foo0 foo foo0[2]*
則從foo0200到foo0278的所有文件都被重命名爲foo200到foo278,文件名中的foo0被替換爲foo。
在使用中,三種通配符可以一起結合使用,關於具體的其它用法就只有自己不斷的摸索了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章