最近在学shell ,书上有个备份文件实例,突然想到虚拟机root目录以前做了多备份,很乱,想批量删除,就有此实例了。 

 
  
  1. [root@bogon ~]# cat rmback.sh 
  2. #!/bin/bash 
  3. #rm backfile 
  4. for file in /root/* 
  5. do 
  6.         if [ -f ${file} ] 
  7.         then 
  8.                 if [ -e ${file}.bak ] 
  9.                 then 
  10.                         rm -rf ${file}.bak 
  11.                         if [ "$?" -eq "0" ];then 
  12.                          echo "${file}.bak  has been deleted" 
  13.                         else 
  14.                              echo "${file} can't be deleted" 
  15.                         fi 
  16.                 fi 
  17.         fi 
  18. done 
 下面是用perl写的可以递归子目录查找.bak文件 ,然后删除,可能写的简陋,实验下还是可以跑
 
 
  
  1. [root@bogon ~]# cat rmback.pl 
  2. #!/usr/bin/perl 
  3. #chulianwang@qq.com 
  4. #2012.3.2 
  5. #Recursion delete the dircetory so backfile 
  6. use strict; 
  7. use warnings; 
  8. use File::Find; 
  9. my @DIR = "/home/"#定义遍历的目录
  10. find(\&wanted, @DIR); 
  11. sub wanted { (/\.bak/) ? unlink $_ : print "$File::Find::name\n" }; #如果匹配.bak文件,删除,否则就输出文件路径

大家谁会用shell写个遍历目录的脚本,发个瞧瞧