故事背景:
某目录下有若干git库,.git文件分布在不同路径下。
需求:把git log内容写入以各自路径命名的文件中,并全部保存在home/log路径(本例中已有该文件夹,如果没有要先创建)下
#!/bin/bash
echo ==== START ====
for var in `find -name .git` #一定要注意这个小点点不是单引号
do
var=${var#*/} #将文件名var中第一个“/”及其左边到内容去掉
cd ${var} #变换路径
var=${var///.git/.log} #将var中的"/.git"替换为".log"
var=${var_} #将var中所有的"/"替换为"_"
git log > ~/log/${var} #执行git log命令,并将结果保存在home/log/路径下以原文件路径命名的.log文件中
cd - #返回原路径
done
echo ==== FINISH ===
参考链接
blog.csdn.net/augusdi/article/details/41010041