linux下rename用法–批量重命名 – ”温故而知新“

Linux的rename 命令有两种版本。,一种是C释放宣言的版本。,一种是Perl释放宣言的版本。,未成年的Linux发行版大致如此运用了C释放宣言版本。,如今罚款逮捕C版本了。, 鉴于历史认为,当Perl释放宣言为白色时,Linux的器显影剂置信Perl可以推迟行动C。,像很,主体器都是C版本,并由Perl改写。,因 Perl版本后退踏出的路处置,因而功用更强大的。,不再需求C释放宣言版本。。
1。怎样判别重命名命令的版本在零碎中?
输出人 rename 逮捕第支座 反力影响线是
重命名(1) Linux Programmer’s Manual 重命名(1)
这样的 这是C释放宣言的版本。。据我的观点零碎应该是C释放宣言版本。
假如有:
重命名(1)              Perl Programmers Reference Guide              重命名(1)
这是Perl版本。!
两种版本的声调特色:
C释放宣言的,依上面的正文,
重命名的声调体式是:
rename fromtofile
这命令有三个参量。,它们辨别去掉自某处。 : 什么名字被修正?,to:什么名字变更了?,file 那现在申请需求修正?。
运用例:
譬如,有很多现在申请。,它们都是从日记开端的。,,  ……. 一向到
如今,您祝福用历史记录掉换这些现在申请的各种的日记。
rename  log history LOG*[C]的运用
这命令的理性很整整。,把 以log前面的的各种的现在申请达到目标log性格掉换为history
此掉换后的现在申请是:,  ….. 一向到history100.txt
rename C释放宣言版本的另本人容器是批量修正后缀。,
像,我们的需求将各种的JPEG的后缀解说勘查现在申请顶替JPG。。
rename .jpeg.jpg*.jpeg
很,用JPEG详述的各种的后缀解说都被修正为.jPG。
如今总结一下。:
rename C释放宣言版本取得的功用:批处置现在申请名,去掉每个现在申请将被掉换为完全一样性格串。!执意,无法取得很的大约。 因此按编号重命名。!
2。Perl 版本的批量重命名,具有Perl的优点是,可以运用不变的措辞执行遗产管理人的职责可疑的的行使职责。。
perl 版本参量体式:
rename  perlexprfiles
留意,Perl版本的重命名仅两个参量。,第本人参量是Perl不变的措辞。,另外的个参量是要处置的现在申请。
man 重命名帮忙示例:
1) 有很多现在申请。,以.bak完结部,如今据我看来把这些放紧随其后。 在各种的。
rename     ”s/\.bak$//”       *.bak
这命令充分简略。,因我无零碎地深思Perl。,我不认识Perl的掉换性格串无论这样的做。,但这执意SED所做的。,因而假如你有SED或TR基础,这易于解决逮捕。,此掉换与SED达到目标不变的声调完全完全相同的事物。。
2) 用资源把各种的的现在申请名取去掉。,修正小写字母字母。
rename      ”y/A-Z/a-z/”      *
它依然与SED的掉换声调完全相同的事物。,无更多的解说。,假如你完全不懂,,我们的可以先零碎地研究SED。。
还要几个的更实践的容器。:
1) 批处置中截现在申请名达到目标空格。
Linux现在申请名不后退空白。,我不认识那时容许。,当然,当命令行上的现在申请被下令时,打孔是充分有成绩的。,像,你 它可以直截了当地运用。 mv 
oldfile  newfile  除了曾经无打孔了。 , 添加双引号:mv “oldfile”  “newfile” 或许运用反斜杠停止转会。 \[]

,那罚款。,除了假如您直截了当地将打孔达到目标图像名引入到橡浆DOCU中,当橡浆使产生PDF时,它会直截了当地迹象出现在申请名。,这成绩使复杂化了我很长一段时间。,我使产生的
PDF怎样常常出如今现在申请名中?后头,男子汉查明!在Windows零碎下使产生的现在申请名是当然打孔。,但我无聊的它。,除了少量的HP扫描。
默许境遇下,由为演奏谱曲使产生的图像被添加到空白处。,无办法,得去掉他。,在零碎地深思重命名命令先发制人,我用的是MV 打孔去除。
Web增长上两个空白的版本:
1) tr 版:
find . -type f -name “* *” -print |
while read name; do
na=$(echo $name | tr ” ” ”_”)
if [[ $name != $na ]]; then
mv 一元纸币 $na
fi
done
我先前一向在运用这版本。,我不认识哪本人互联网网络搜索来了。,当初还无零碎的研究过tr/sed/awk命令。
解释一下,罚款逮捕,find . type f -name “* *” -print 这是为了查找眼前布头达到目标各种的典型的踏出的路现在申请。
与收录解说中空格的现在申请。,并迹象去掉。,实际上,查明默许是迹象去掉的。 本刊 富余了,因此 经过管道转会到
大约看得懂,现在申请名与解说 变量中,运用TR 命令将打孔掉换为下划线。。 上面判别假如执行遗产管理人的职责后的解说不完全相同的事物,运用MV
命令重命名。除了,假如这种判别是微不足道的。,因find查询各种的现在申请名都收录空格。,后TR 定货单后,NA变量相对不如$NATE。 变量的。
因而这信号可以使简易。:
find . -type f -name “* *” |
while read name; do
na=$(echo $name | tr ” ” ”_”)
mv 一元纸币 $ NA
done
tr 它可以被显得不错是SED。 金发版本,tr 运用下划线掉换空格。。
还要本人 这是SED 版本取得:
for f in *;do mv “$f” `echo “$f” | sed ”s/[ ]\+/_/g” `; done
在这一点上也可以用这种办法写作SED措辞。:
sed 's[[::打孔:] ] \ /y/g′
除了铭记不忘,SED达到目标本人或多个迹象需求添加反斜杠。。即:\+,这就行了。。
好了,这两种办法太罗嗦了。,检查重命名取得。:
rename      ”s/[ ]+/_/g”       *
OK很简略。。
方括号达到目标打孔可以被[打孔]推迟行动。,
它可以写成[/[[打孔:] ] /y/g′。
留意在这一点上,rename 运用基准的Perl不变的文法。,因而不需求将加号顶替反斜杠加记号。
即+ 无法修正为,要不然掉换完全失败。。
也有少量的风趣的容器。:
像,hello被添加到现在申请的头。
rename         ”s/^/hello/”       *
一致把.html详述名修正为.htm
rename          ”s/.html$/.htm/”      *
一致补充部分侦察队两两散开的zip后缀。:
rename          ”s/$/.zip/”      *
一致zip后缀:
rename          ”s/.zip$//”      *
不变的化数字编号解说,像,1.JPG, 2.jpg ….. 100.jpg , 如今把现在申请名的三位为1.jPG。 …. 001.jpg
运转二阶。:
rename           ”s/^/00/”          [0-9].jpg     # 这一步需求1.JPG。 ….. 9.jpg 更顶替1001.JPG …. 009.jpg
rename            ”s/^/0/”           [0-9][0-9].jpg   # 这一步需求10JPG。 ….. 99.jpg 更顶替010JPG ….. 090.jpg
Ok ,改名深思了这样的多。,眼前,我不认识怎样将静态变量引入到任意中。,像,$i
我尺寸了i=0。 rename -n “s/^.*$/$((++i))/”   * 抬出去后提升了1。,这不是据我看来象的。,每个处理可以添加本人现在申请。,这能够是因重命名是按批取得的。,因 i最适当的计算一次。!
-n  用于尺寸重命名迅速移动。,不直截了当地运转,你可以逮捕尺寸成果。,因此再跑。。
好了,让我再解说一遍。,当你运用它时,一定要批准你的释放宣言版本。,我的版本是C释放宣言。
重命名(1)                  Linux Programmer’s Manual                 重命名(1)
功用:
rename from to 现在申请。
用法:
For example, given the files foo1, …, foo9, foo10, …, foo278, the commands
rename foo foo0 foo?
rename foo foo0 foo??
will turn them into foo001, …, foo009, foo010, …, foo278.
And
rename .htm .html *.htm
will fix the extension of your html 现在申请夹。
让我们的看待本人容器。:

最不可能的现在了本人实践使用达到目标成绩。,先看一眼上面的计算在内。

逮捕了吧,我们的想把图片现在申请名达到目标海报字母顶替大[注]。:反叠一份,不克不及直截了当地推迟行动,这样的,我们的该怎么办呢?,对了,这要紧运用重命名。
cd /data/openshop_1028/IMG_SERVER/sources/goods/
find ./ -name “*” -exec cp “{}” {}.1 \;
find ./ -name “*.1” -exec renamead.jpg.1 big.jpg {} \;
假如可以直截了当地重生,这是命令。:
cd /data/openshop_1028/IMG_SERVER/sources/goods/
find ./ -name “*” -exec rename ad big {} \;
你可以逮捕上面的尺寸。

介绍人