如何在不指定父目录的情况下将目录更改为下面两个目录的任意文件夹?

如何在不指定父目录的情况下将目录更改为下面两个目录的任意文件夹?

我正在创建一个脚本,它将有助于自动从远程源更新 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

可能对你有用......

相关内容