一番码客 : 挖掘你关心的亮点。
http://efonfighting.imwork.net
本文目录:
前言
开源项目作为一个大宝库给我们提供了非常多的资源,在github上,我们一般会同时关注多个项目,我们总有这样的需求,将所有关注的项目实时备份到本地,一是作者可能删除项目,二是方便本地随时查看。
那么这里一番介绍两个一行shell命令操作所有git仓库的方法,希望对大家有帮助。
不知道大家有没有遇到过这样的场景:
cd 到一个目录下,想要对一些文件做批量性的操作,例如批量重命名。
这时大家可选择创建一个 python 脚本或者 shell 脚本文件,首先 touch,然后 vi,然后执行。
如果 shell 用的比较熟,我们可以一行命令直接在终端实现了,也许对于简单逻辑的功能,用一行代码实现是一种简便的解决办法。
也许有朋友有这样的疑问或其他场景类似需求,一行命令行能不能实现复杂的功能;特别是在嵌入式的 linux 平台做开发的时候。
对于复杂的功能实现,还是好好写 shell 脚本文件吧,也许 python 是更好的方法。
简单应用,shell 大神请忽略,欢迎大神多多提供经验、捷径、方法或者小技巧,谢谢!
脚本一
-
一行脚本:
cat content.txt | while read line ; do git clone $line; done;
-
功能描述:
clone下载所有文本中的仓库到本地。
-
实现方法:
将所有关注的git库地址放到一个文本文件里,一个git库一行。
cat方式打印出文本内容,并用管道符
|
传递出来。while read line
方式读取每一行的内容,作为参数,git clone $地址
即可。 -
content.txt示例:
git@github.com:xiaolai/regular-investing-in-box.git git@github.com:chaozh/awesome-blockchain-cn.git git@github.com:jackfrued/Python-100-Days.git git@github.com: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
一番今日
这两天降温了,冬天来了,秋裤也上岗了,离过年也不远了。昨天读了一篇关于斜杠文化的文章,很不错。要写出这样一篇文章需要很大阅读量、清晰的思路、熟练的文笔。关于这篇文章感兴趣的朋友可以在“阅读原文”里查看“专题-自由职业之路”,里面有文章《被90%中国人误解了12年的斜杠》的链接
一番雾语:多读书,才能引经据典,出口成章,下笔入神。
免费知识星球: 一番码客-积累交流
微信公众号:一番码客
微信:Efon-fighting
网站: http://efonfighting.imwork.net