9 Jul

Linux 下批量更改文件名

分类:电脑技术 » linux shell   出处:本站原创         | |
比如将所有文件名中带有20080707的字符更改成20080709?


root@ubuntu:~/test# cat re
#!/bin/bash
# code by thatday
#
ls -l $1 | grep ^[^d] | awk '{print $9}'| while read line; do
do=`echo $line | grep $2`

if [ ! "$do" = "" ]; then
   newname=`echo $line | sed 's/'$2'/'$3'/g'`
   echo "rename $line to $newname ..."
   mv $1/$line $1/$newname
fi
done

root@ubuntu:~# chmod +x re


root@ubuntu:~# ls -l test/
total 4
-rw-r--r-- 1 root root    0 Jul  9 13:45 20070808jjj
-rw-r--r-- 1 root root    0 Jul  9 13:45 20070809abc
-rw-r--r-- 1 root root    0 Jul  9 13:45 aaa20070809bb
drwxr-xr-x 2 root root 4096 Jul  9 12:05 bak
-rw-r--r-- 1 root root    0 Jul  9 13:45 ccccc200708091
-rw-r--r-- 1 root root    0 Jul  9 13:45 dddd20070809aj

root@ubuntu:~# ./re test/ 20070809 20070810
rename 20070809abc to 20070810abc ...
rename aaa20070809bb to aaa20070810bb ...
rename ccccc200708091 to ccccc200708101 ...
rename dddd20070809aj to dddd20070810aj ...
root@ubuntu:~# ls test/
20070808jjj  20070810abc  aaa20070810bb  bak  ccccc200708101  dddd20070810aj



626 次阅读
1 条评论
0 条引用
不指定 作者:thatday   时间:13:24   Tags:
孤独红尘
2008/09/09 10:31
rename 20080707 20080709 *20080707*
分页: 1/1 第一页 1 最后页
发表评论
  昵称 [注册]
  密码 (游客无需密码)
  网址
  电邮
高级编辑