一,前言
关于批量删除文件夹等操作,有很多工具,如,everything工具(有个高级筛查功能),Rename pro工具,都可以用,简单的操作很方便,但是我们使用shell脚本来操作也有很大优势,脚本的优势是ide所没有的
1.1 shell脚本的优势
可以跨平台(虽然说是shell是运行在linux下的,但是在windows下,如果你做开发,一般都会安装git软件,安装完后右键自带bash 工具,打开就是shell终端环境了),并且不需要编译环境,操作非常方便
1.2 为啥批量删除.git
目前在学习黑马的java课程,最后的一个大项目<神领物流>,这个项目中全是微服务,差不过有15个以上,而每一个微服务都是一个工程,并且每一个工程里面都有一个git仓库,对应的项目中linux私服中的仓库也是15个以上,在idea中可以批量提交,但是碰到一个问题,
- 只有一个项目,搞了十几个仓库,虽然说对于大公司分组开发方便,但是自己学习阶段,太过麻烦,为啥不搞一个仓库呢
- 学习过程中碰见过好几次linux虚拟机崩了,打不开了,又得重新解压虚拟机,虽然说本地的git历史记录还保存着,但是很不安全
- 想着把自己修改过的学习代码一次性提交到码云上(可以设置成私有的),这样就可以在网上备份了
- 但是你这十几个仓库,如何备份到码云上,不开玩笑么,因此需要把源码备份出来,但是你发现你再根目录下git init时,各种git错误,因为这时候子目录中存在原始的.git记录,必须删除,至于有些高手如何不删除里面.git,新增加remote 操作,目前没研究明白,还非常麻烦,放弃
- 删除里面的.git文件夹,重新git init,再次推送到码云上
1.3 shell 脚本,命名为del.sh
#!/bin/bash
func (){
#echo "The first argument is: $1"
local dir="$1"
#echo "IF=$IFS "
IFS=$'\t\n'
for f in `ls $1 -A`
do
if [ -f "$dir/$f" ]
then
#echo "$dir/$f 是文件"
:
elif [ -d "$dir/$f" ]
then
#echo "$dir/$f 是目录"
if [[ "$f" == ".git" ]]
then
echo "找到.git 目录=$dir/$f"
rm -rf $dir/$f
else
func "$dir/$f"
fi
else
echo "$dir/$f 未知"
fi
done
}
func $*
在shell命令行,执行./del.sh . 即可