shell批量删除.git文件夹

一,前言

        关于批量删除文件夹等操作,有很多工具,如,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 . 即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值