Linux/Centos批量文件重命名

软件·服务器 楚盟 234℃ 0评论

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/Centos批量文件重命名

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址