注意:rename 命令有 C 語言 和 perl 兩個版本,這裏只介紹 perl 版本。
javascript
今天工做的時候須要處理一批文件,具體命名形式是 a_b_c.xx,要把它們改爲 b_a_c.xx。php
mv 命令一次只能操做一個文件,這樣效率就過低了。其實能夠結合管道操做完成java
我想推薦的是 rename 命令,rename 命令是專門用來重命名操做的。linux 下的 rename 命令有兩種版本,一種是 C 語言版本, 一種是 perl 版。能夠使用 man rename 看一下本身的是什麼版本的。我電腦上的 perl 版本的,因此我就只介紹這個版本的用法啦。linux
基本用法:函數
rename 's/(查詢的正則)/(替換的內容)/' 文件
其中 's/(查詢的正則)/(替換的內容)/'
是 perl 的一種正則的形式,不懂不要緊,不影響咱們完成重命名操做,寫成 s(表明替換) 就好了。spa
剩下的,只要你會用 js String 的 replace 函數就 OK 拉。.net
若是把文件名當成是須要替換的字符串,那麼在 js 裏,咱們會這樣寫。unix
var filename = "a_b_c.txt" filename.replace(/(.*?)\_(.*?)\_(.*?)/, '$2_$1_$3'); //"b_a_c.txt"
對應到 rename 命令中,就是code
Cool!! 效果是和 js replace 函數是同樣的。這樣的話,知道這個用法,就已經能夠應付大多數的重命名需求了。ip
若是不行,請別找我...
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=159388