J'essaie d'écrire un script pour séparer un dépôt GitHub avec de nombreux projets dans des dépôts séparés tout en conservant leur historique git. Je sais comment tout faire à la main, mais je voulais gagner du temps en écrivant un script pour le faire pour moi.Exclusion de dossiers dans la boucle bash
Voici ce que j'ai jusqu'à présent
Script
#!/bin/bash
REPO_DIR="C:/Users/Jerred/GitKraken/harding-computer-science/"
cd "$REPO_DIR"
for X in "`find . -maxdepth 2 -mindepth 2 -type d`"
do
if [[ "$X" == *"git"* ]]; then
echo "NO MATCH: $X"
continue;
fi
echo "$X"
done
Cela fonctionne assez bien, sauf qu'il comprend le dossier .git qui devrait être exclu. Pour une raison quelconque, cela ne fonctionne pas.
Sortie
NO MATCH: ./.git/hooks // This is ignored like I want
./.git/info // This isn't ignored but it should be
./.git/logs
./.git/objects
./.git/refs
./COMP 151 - Programming II/Lab 10 Resources
./COMP 151 - Programming II/Lab 11 Resources
Je doute qu'il est nécessaire, mais voici le repo sur GitHub.
Il ne répond pas à votre question mais avez-vous envisagé d'utiliser l'option '-path' de' find' pour filtrer '.git/*'? Essayez d'ajouter '! -path ./. git/\ * 'à votre commande find, peut-être. –