Linux 批量文件重命名常用命令

linux本身是不支持空格的,如果直接处理包含空格的文件名这很容易出错,所以我们需要对文件名进行转义,这个方法是用下划线来替补空格;当文件数量很多的时候,自然一个个修改会浪费很多时间,同时还会累个半死,下面这段代码会自动处理当前目录下的所有包含空格的文件名,简单轻松且特别高效;

linux下批量处理文件名中包含空格的问题

find . -type f -name "* *" -print |

while read name; do

na=$(echo $name | tr ' ' '_')

if [[ $name != $na ]]; then

mv "$name" $na

fi

done

将当前目录下文件依次按照1.flv 2.flv 3.flv以此类推重命名

i=1; for x in *; do   mv "$x" $i.flv;   let i=i+1; done

批量将文件名后缀由flv改为mp4

rename .flv .mp4 *.flv

将文件名开头部分AAA批量替换成BBB

rename  AAA BBB  AAA*

批量删除文件名当中指定文字(第八行是执行命令)

$ touch glyphicons_315911_linux{a..g}.png

$ ls *.png

glyphicons_315911_linuxa.png glyphicons_315911_linuxe.png

glyphicons_315911_linuxb.png glyphicons_315911_linuxf.png

glyphicons_315911_linuxc.png glyphicons_315911_linuxg.png

glyphicons_315911_linuxd.png

==================运行脚本========================

$ for i in `ls glyphicons_*.png`; do mv $i ${i##glyphicons_*_}; done

$ ls *.png

linuxa.png linuxc.png linuxe.png linuxg.png

linuxb.png linuxd.png linuxf.png

#最后删除测试文件,此命令请谨慎使用

$ rm -f *.png

批量在所有文件名开头添加AAA

for i in `ls`; do mv -f $i `echo $i | sed 's/^./AAA/'`; done

批量修改文件名前五个字符为ABCDE

for i in `ls`; do mv -f $i `echo $i | sed 's/^...../ABCDE/'`; done

批量修改文件名后五个字母为54321

for i in `ls`; do mv -f $i `echo $i | sed 's/.....$/54321/'`; done

在所有文件名开头添加3sv.ktsee.com

for i in `ls`; do mv -f $i `echo "3sv.ktsee.com"$i`; done

文件名字母小写改成大写

for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done

[via]http://www.5yun.org/8962.html[/via]

评论

Popular Posts

随身WiFi折腾指南: 解锁、刷机与DIY

Cromite - 极度注重隐私的Chromium浏览器

《赤い涙 》灼眼的夏娜剧场版插曲

求职面试时常被问到的65个问题与技巧性回答

伤不起的盖茨比——那些年,我们没逆袭到的女神

人类的十个有趣心理效应

电话销售技巧8:如何绕过前台

Alexa互联网信息公司中文官方网站

拒绝道德绑架,这才是真正的公益广告

感情的瓶颈期或者说磨合期该怎么度过?