Dos/Windows下,對文件改名用rename。而書上說,Linux下對文件或目錄改名該用mv。我一直也是這樣做的,卻忽略了Linux下也有個叫rename的命令。都是rename,但功能上就有點差異了。Linux下的rename更像批量改名的工具,是util-linux套件中提供的。
從mv和rename命令的man文檔中,可以看到如下信息:
改名結果:
(紅色是沒有改動的,藍色是有改動的一部分)
引用
該例子給出了兩種文件批量重命名的用法:
引用
第一個參數(shù):被替換掉的字符串
第二個參數(shù):替換成的字符串
第三個參數(shù):匹配要替換的文件模式
rename支持通配符,基本的通配符有以下幾個:
引用
? 可替代單個字符
* 可替代多個字符
[charset] 可替代charset集中的任意單個字符
看看*的作用:
引用
$ rm -f *
$ for i in `seq 100`;do touch foo$i;done
$ rename foo foo0 foo*
$ ls
foo01 foo018 foo027 foo036 foo045 foo054 foo063 foo072 foo081 foo090
foo010 foo019 foo028 foo037 foo046 foo055 foo064 foo073 foo082 foo091
foo0100 foo02 foo029 foo038 foo047 foo056 foo065 foo074 foo083 foo092
foo011 foo020 foo03 foo039 foo048 foo057 foo066 foo075 foo084 foo093
foo012 foo021 foo030 foo04 foo049 foo058 foo067 foo076 foo085 foo094
foo013 foo022 foo031 foo040 foo05 foo059 foo068 foo077 foo086 foo095
foo014 foo023 foo032 foo041 foo050 foo06 foo069 foo078 foo087 foo096
foo015 foo024 foo033 foo042 foo051 foo060 foo07 foo079 foo088 foo097
foo016 foo025 foo034 foo043 foo052 foo061 foo070 foo08 foo089 foo098
foo017 foo026 foo035 foo044 foo053 foo062 foo071 foo080 foo09 foo099
再看看[charset]的作用:
引用
foo09 foo099 foo17 foo26 foo35 foo44 foo53 foo62 foo71 foo80
foo090 foo1 foo18 foo27 foo36 foo45 foo54 foo63 foo72 foo81
foo091 foo10 foo19 foo28 foo37 foo46 foo55 foo64 foo73 foo82
foo092 foo100 foo2 foo29 foo38 foo47 foo56 foo65 foo74 foo83
foo093 foo11 foo20 foo3 foo39 foo48 foo57 foo66 foo75 foo84
foo094 foo12 foo21 foo30 foo4 foo49 foo58 foo67 foo76 foo85
foo095 foo13 foo22 foo31 foo40 foo5 foo59 foo68 foo77 foo86
foo096 foo14 foo23 foo32 foo41 foo50 foo6 foo69 foo78 foo87
foo097 foo15 foo24 foo33 foo42 foo51 foo60 foo7 foo79 foo88
foo098 foo16 foo25 foo34 foo43 foo52 foo61 foo70 foo8 foo89
Linux的rename 命令有兩個版本,一個是C語言版本的,一個是Perl語言版本的,判斷方法:
輸入man rename 看到第一行是
RENAME(1) Linux Programmer’s Manual RENAME(1)
這個就是C語言版本的 ---我的就是C語言版本
而如果出現(xiàn)的是
RENAME(1) Perl Programmers Reference Guide RENAME(1)
這個就是Perl版本的了
C語言版本格式:rename 原字符串 新字符串 文件名
樣例1:目錄test下存在兩個文件:a_01、a_02,若需要將文件名中的a替換為b,其他部分保持不變,則
(1) 若當前位于test目錄下,則執(zhí)行 rename a b *
(2) 若當前位于test的父目錄,則執(zhí)行 rename a b test/*
Perl語言版本格式:rename 's/原字符串/新字符串/' 文件名
樣例2:題目如樣例1,則
(1) 若當前位于test目錄下,則執(zhí)行 rename 's/a/b/' *
(2) 若當前位于test的父目錄,則執(zhí)行 rename 's/a/b' test/*
腳本實現(xiàn)方法:
標簽:哈密 昌都 臺州 優(yōu)質穩(wěn)定 玉樹 海東 九江 孝感
巨人網絡通訊聲明:本文標題《詳解Linux系統(tǒng)中rename命令的使用方法》,本文關鍵詞 詳解,Linux,系統(tǒng),中,rename,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。