linux本身是不支持空格的,如果文件名含有空格就会处理失败,所以需要将文件名的空格给批量处理一下才能正常使用rename命令
处理文件名中的空格命令
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
在所有文件名开头添加www.5yun.org
for i in `ls`; do mv -f $i `echo "www.5yun.org"$i`; done
文件名字母小写改成大写
for i in `ls`; do mv -f $i `echo $i | tr a-z A-Z`; done
转载请注明:楚盟网 » Linux批量文件重命名