大致说一下 所处理目录里的文件内容如下
20111130102504289.flv  20111130103705649.flv  20111130104629277.flv

执行完yamdi(处理视频的一种工具)这一步后是下面这种形式
tmp_20111130102555254.flv  tmp_20111130103855301.flv

20111130102504289.flv  20111130103705649.flv  
第二步删除的是以2011开头的这些文件 执行完得到结果如下
tmp_20111130102555254.flv  tmp_20111130103855301.flv  tmp_20111130104944916.flv  
第三步就是把tmp开头的文件去掉tmp_这个字段变成如下形式
20111130102555254.flv  20111130103855301.flv  20111130104944916.flv  

 
  
  1. #!/bin/bash

  2. #ls /opt/test/20111204_import

  3. for x in `ls /opt/test/20111201_import`  

  4. do

  5.    yamdi -i $x -o tmp_$x -c "modify by mytv365.com"

  6. done

  7. cd /opt/test/20111201_import

  8. rm -rf 2011*

  9. echo "delete ok"

  10. for file in `ls /opt/test/20111201_import`

  11. do

  12.     mv $file `echo $file | sed 's/tmp_//g'`

  13. done

  14. echo "all is ok"

说说 脚本执行过程中遇倒的问题 yamdi由于处理的目录里面文件数目过多 文件过大 shell有可能处理不过来 而直接调到第二步去  可能是与shell处理能力有关吧 脚本本身没有问题 记录下来主要就是学了怎么批量修改目录下的文件名 1.gif

#########################################2014-03-03#####################################

使用xargs批量重命名文件名
[root@mail home]#ls *.sql
test.20121225.patch.sql test.20121225.revert.sql
将/home目录下所有.sql结尾的文件重名为test.20121225.patch.sql.bak  test.20121225.revert.sql.bak
命令如下
[root@mail home]# ls *.sql |  xargs -t -i mv {} {}.bak  -t参数 回显命令
mv test.20121225.patch.sql test.20121225.patch.sql.bak
mv test.20121225.revert.sql test.20121225.revert.sql.bak

查询验证
[root@mail home]# ls *.bak
test.20121225.patch.sql.bak  test.20121225.revert.sql.bak

############################################xargs########################################