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进行查看)