linux的shell下文件批量改名
2010年1月27日
没有评论
以前写的一个小脚本,用在linux的shell批量修改大量文件名的情况下。昨天不小心删除了大量文件,找回的时候,又一次用到了它,在遇到大批量文件的时候,还是挺有效果的,共享一下。
用法:
1.将你要改名的文件都放在同一个文件夹下,运行”ls -l > oldnames”,然后“vi oldnames”,这时候看到的大概是这个样子:
total 1224 drwxrwxr-x 3 yanpeng yanpeng 4096 Sep 17 16:13 app drwxrwxr-x 2 yanpeng yanpeng 4096 May 19 2009 bin drwxrwxr-x 2 yanpeng yanpeng 8192 Jan 26 16:40 docpay
2.输入”ctrl+v”,移动光标,选中要删除的那一堆内容,其实就是文件名前面的那些列,输入“d”,得到的文件大概为
app bin docpay
3.删除掉第一行的空行,保存退出vi,然后”cp oldnames newnames”。
4.修改newnames文件中想要改名的文件为新文件名
5.将change_name.sh脚本放在你的那个放置文件的夹下,运行./change_name.sh就可以了(注意有执行权限,加执行权限的方法chmod a+x change_name.sh)
change_name.sh脚本内容,拷贝下,存好就能用了
#!/bin/sh
OLDNAMES='oldnames'
NEWNAMES='newnames'
fileline=`sed -n '$=' $OLDNAMES`
echo $fileline
index=1
while [ $index -le $fileline ]
do
oldname=`sed -n "${index}p" $OLDNAMES`
newname=`sed -n "${index}p" $NEWNAMES`
mv $oldname $newname
index=`expr $index + 1`
done
---------------------------------------------------------------
本站作品根据创作共同协议进行授权, 转载时请务必以超链接形式标明文章原始出处
原文地址:http://www.mirecle.com/2010/01/27/batch-rename-files-in-shell.html
---------------------------------------------------------------