shell删除指定目录下的svn目录

在发布或是部署一些项目时,需要先将资源上传到服务器。环境一般分为:本机、内网、公网,公网的话,考虑带宽问题,一般不允许将.svn目录和Thumbs.db文件上传上去,这样需要先导出项目文件,如果工程较大,导出可能还比较慢。内网的话,为了方便,我一般就是上传内网时,把项目里的文件夹直接上传至内网服务器,然后使用shell命令再删除.svn目录和Thumbs.db文件。

 

直接在终端下使用VI进行编辑,然后输入shell程序,保存、退出,需要使用时直接调用sh xxx.sh ‘目录路径’即可。

完整的shell程序:

echo 'start~'
#echo $1

if [ -z $1 ]; then
echo 'please input you need del directory!';
exit;
elif [ ! -d $1 ]; then
echo "$1 is not directory";
else
cd $1;
echo "change path $1";
find . -type d -name ".svn" |xargs rm -rvf;
find . -type f -name "Thumbs.db" |xargs rm -rvf;
fi;

 

之前没接触过shell,所以记录一下,以免事后忘记了。

 

上述代码 $1为调用shell时传入的参数 $0为shell文件名

-z $1  则是判断是否有参数的输入

-d $1  判断传入的参数是否为一个目录,检测是否为文件,使用-f

find 指令 后跟着 需要查找的目录

    -type 需要查找的类型,常用一般为 –d –f (还有其它参数,可以使用--help查看)

    -name 使用文件名对查找的文件/文件夹进行过滤

    xargs 是将前面获取前面查找的所有参数,因为后述参数的传递有上限

rm 删除文件及目录

     -f 强制删除

     -r 递归处理

    -v 显示执行的过程 (其它参数可以使用--help进行查看)

posted @ 2011-11-07 15:05  meteoric_cry  阅读(2732)  评论(0编辑  收藏  举报