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

《活法》作者:[日]稻盛和夫 pdf下载

Microsoft 365安装包下载(Office桌面应用)

浩方对战平台优化版 V2.05 部分去除浩方广告和弹出窗口

麦当劳免费Wifi帐号密码及连接设置

中兴ZTE H618B 路由器固件刷机备忘

Debian 12上使用Nginx代理TCP流量,并配置IPv6白名单访问控制

解决部分网站禁止复制内容的js脚本(无需安装插件)

日本人真实的生活水平,警醒所有的中国人(转帖)

50条有趣的QQ签名大搜集