一行shell脚本 | 自动化操作多个git仓库
- 2019 年 11 月 25 日
- 筆記
前言
开源项目作为一个大宝库给我们提供了非常多的资源,在github上,我们一般会同时关注多个项目,我们总有这样的需求,将所有关注的项目实时备份到本地,一是作者可能删除项目,二是方便本地随时查看。
那么这里一番介绍两个一行shell命令操作所有git仓库的方法,希望对大家有帮助。
脚本一
- 一行脚本: cat content.txt | while read line ; do git clone $line; done;
- 功能描述:
clone下载所有文本中的仓库到本地。
- 实现方法:
将所有关注的git库地址放到一个文本文件里,一个git库一行。 cat方式打印出文本内容,并用管道符
|
传递出来。while read line
方式读取每一行的内容,作为参数,git clone $地址
即可。
- content.txt示例: [email protected]:xiaolai/regular-investing-in-box.git [email protected]:chaozh/awesome-blockchain-cn.git [email protected]:jackfrued/Python-100-Days.git [email protected]:nndl/nndl.github.io.git
- 等同脚本: #!/bin/bash cat content.txt | while read line do git clone $line
- done
脚本二
- 一行脚本 while true;do ls -F | grep "/$" | while read line ;do cd $line;git pull ;cd ../ ; done;sleep 600;done
- 功能描述
同步该目录下所有git库的代码到本地,一小时同步一次。
- 实现方法:
ls -F | grep "/$"
实现打印该目录下所有文件夹。 读取打印的每行内容并进入该文件夹,执行git pull
命令,执行完后退回上一级目录,循环执行。while true
一直执行,sleep
实现等待。
- 等同脚本:
#!/bin/bash while true do ls -F | grep "/$" | while read line do cd $line git pull cd ../ done sleep 600 done