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改为mp4rename .flv .mp4 *.flv
将文件名开头部分AAA批量替换成BBBrename 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
批量在所有文件名开头添加AAAfor i in `ls`; do mv -f $i `echo $i | sed 's/^./AAA/'`; done
批量修改文件名前五个字符为ABCDEfor i in `ls`; do mv -f $i `echo $i | sed 's/^...../ABCDE/'`; done
批量修改文件名后五个字母为54321for i in `ls`; do mv -f $i `echo $i | sed 's/.....$/54321/'`; done
在所有文件名开头添加3sv.ktsee.comfor 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]
评论