marship 发表于 2005-11-22 16:19:10

自己编得用来递归删除CVS目录的脚本

用过CVS的都知道,CVS不能直接删除目录,需要将目录中的所有文件(当然不包括CVS目录)都删除后才能将空目录移除,由于我开始项目时引入了太多垃圾文件,不得不把它们的都删除,但一个一个移除太累且烦人,于是便编了下面这个脚本,请大家指教。
#!/bin/sh
if [ $# -ne 1 ]
then
      echo "please give a directory to remove!"
fi
function cvsrmdir()
{
      local dir
      echo "entering dir $1"
      cd $1
      for dir in *
      do
                if [ -d $dir ]
                then
                        echo "begin processing $dir"
                        if [ $dir != CVS ]
                        then
                              cvsrmdir $dir
                        else
                              echo "jump CVS dir"
                        fi
                else
                        echo "remove file $dir"
                        rm $dir
                        cvs remove $dir
                fi
      done
      for dir in .*
      do
                echo "begin processing hide files $dir"

if [ -d $dir ]
                then
                        if [ "$dir" != "." -a "$dir" != ".." ]
                        then
                              cvsrmdir $dir
                        fi
                else
                        echo "remove file $dir"
                        rm $dir
                        cvs remove $dir
                fi
      done
      cd ..
      cvs commit -m"remove dir $1"
      cvs update -P
      echo "leaving dir $1"
      return
}

if [ -d $1 ]
then
      cvsrmdir $1
fi
   
以后当在CVS中要删除某个文件夹时,只要切换到它的上级目录,再
cvsrmdir dir_want_to_remove
就行了
页: [1]
查看完整版本: 自己编得用来递归删除CVS目录的脚本