rename函式功能

2puT發表於2016-07-13
rename函式功能是給一個檔案重新命名,用該函式可以實現檔案移動功能,把一個檔案的完整路徑的碟符改一下就實現了這個檔案的移動。
1 標頭檔案:
stdio.h
2 宣告:
int rename(char *oldname, char *newname);
3 功能:

將oldname重新命名為newname,如果oldname和newname歸屬的資料夾不同,可以做到移動的效果。


rename的引數
rename命令的格式:
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
第一個引數:被替換掉的字串
第二個引數:替換成的字串
第三個引數:匹配要替換的檔案模式
例子:rename main1.c main.c main1.c 將main1.c重新命名為main.c
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,只重新命名5個字元長度名稱的檔案,檔名中的foo被替換為foo0。
如果使用 rename foo foo0 foo*
foo001到foo278的所有檔案都被重新命名為foo0001到foo0278,所有以foo開頭的檔案都被重新命名。
如果使用 rename foo0 foo foo0[2]*
從foo0200到foo0278的所有檔案都被重新命名為foo200到foo278,檔名中的foo0被替換為foo。
rename支援正規表示式
例子:
字母的替換rename "s/AA/aa/" * //把檔名中的AA替換成aa
修改檔案的字尾rename "s//.html//.php/" * //把.html 字尾的改成 .php字尾
批量新增檔案字尾rename "s/$//.txt/" * //把所有的檔名都以txt結尾
批量刪除檔名rename "s//.txt//" * //把所有以.txt結尾的檔名的.txt刪掉

相關文章