我正在创建一个脚本,它将有助于自动从远程源更新 git 存储库。现在脚本如下所示:
for i in $(/bin/ls */*/ -1 | grep /: -v)
do
echo "==> Fetching $i"
cd */*/$i
git remote update
cd ../../..
done
我唯一遇到的问题是
cd */*/$i
部分
我怎样才能通过 cd 进入这些目录?
答案1
$i
已经有目录作为其一部分,因此不需要带有星号cd
。
另外,您可以使用,ls -d
所以不需要 grep。
cd
另外,您可以将到的命令包装git
在一组括号中,( ... )
这样您就不需要了cd -
。
答案2
如果他们都有一个.git
目录……
就像是
for i in $(find /path/to/top -name .git -type d -exec dirname {} \;)
do
cd $i
echo Updating in $PWD
git remote update
cd -
done
可能对你有用......