扫描.git目录时,以下bash脚本很慢,因为它查看每个目录。如果我有一个大的存储库的集合,需要很长时间才能查找每个目录,寻找.git。一旦找到一个.git目录,它将会更快地修剪repos中的目录。有什么想法,如何做到这一点,还是有另一种方式来写一个完成同样的事情的bash脚本?
#!/bin/bash # Update all git directories below current directory or specified directory HIGHLIGHT="\e[01;34m" NORMAL='\e[00m' DIR=. if [ "$1" != "" ]; then DIR=$1; fi cd $DIR>/dev/null; echo -e "${HIGHLIGHT}Scanning ${PWD}${NORMAL}"; cd ->/dev/null for d in `find . -name .git -type d`; do cd $d/.. > /dev/null echo -e "\n${HIGHLIGHT}Updating `pwd`$NORMAL" git pull cd - > /dev/null done
具体来说,你将如何使用这些选项?对于这个问题,你不能假设repos的集合都在同一个目录中;它们可能在嵌套目录中。
top repo1 dirA dirB dirC repo1