Vérifier si un répertoire contient un sous-répertoire particulier

J’essaie d’écrire un script shell, qui vérifie si un répertoire donné contient un sous-répertoire particulièrement nommé. Je passe le répertoire parent en tant que premier argument et uniquement le nom du répertoire enfant. Je souhaite que le script passe en revue le contenu du parent et vérifie s’il contient un fichier de type répertoire, nommé avec le nom que je transmets pour Child.

Ceci est mon code. J’essaie d’y diriger la sortie de ls sur la commande Parent vers la commande egrep . J’essaie d’écrire une expression régulière qui vérifie si la sortie de ls a un nom qui correspond (pas identiquement, quelque part dans son nom) à mon nom d’enfant.

 PARENT=$1 CHILD=$2 DIRNUM=$(ls -l $PARENT | egrep -c '') echo $DIRNUM 

Ne fais pas ça. Ne pas parsingr ls .

Il suffit de vérifier le fichier / répertoire directement avec la commande [ / test intégrée.

 path=$parent/$child if [ -d "$path" ]; then echo "$path exists." else echo "$path does not exist." fi 

Vous remarquerez que j’ai changé de cas sur les noms de variables. Les variables ALL_UPPER sont “réservées” pour l’utilisation du shell que vous ne devez utiliser.

Utilisez la commande find comme suit:

 # find $parent -name \*${child}\* -and -type d 

L’option type permet de s’assurer que le nom trouvé est un répertoire.

Cette commande trouvera tous les sous-répertoires situés dans $ parent qui contiennent $ child dans son nom