用过CVS的都知道,CVS不能直接删除目录,需要将目录中的所有文件(当然不包括CVS目录)都删除后才能将空目录移除,由于我开始项目时引入了太多垃圾文件,不得不把它们的都删除,但一个一个移除太累且烦人,于是便编了下面这个脚本,请大家指教。
[code:1]#!/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
[/code:1]
以后当在CVS中要删除某个文件夹时,只要切换到它的上级目录,再
cvsrmdir dir_want_to_remove
就行了