Comment imprimer le nom du répertoire parent de mon répertoire actuel

J’espère avoir bien formulé ma question. Plus précisément, c’est ceci:

Je voudrais utiliser test ou peut-être une instruction case pour déterminer si un nom de répertoire contenu dans la variable $ DIR est soit mon répertoire actuel (.) Soit son répertoire parent (..)

Bien sûr, je peux faire écho à mon répertoire actuel (echo $ PWD), mais quel est le moyen le plus simple de faire écho au parent de $ PWD?

Merci.

Vous pouvez utiliser ${PWD%/*} :

 $ echo $PWD /home/me/test/t $ echo ${PWD%/*} /home/me/test 

Comme l’expression ${PWD%/*} supprime la correspondance la plus courte de /* de l’arrière de $PWD :

A partir du manuel de référence de Bash → 3.5.3 Extension du paramètre Shell :

$ {paramètre% mot}

Le mot est développé pour produire un motif comme dans l’extension de nom de fichier. Si le motif correspond à une partie de fin de la valeur étendue du paramètre, le résultat de l’expansion est la valeur du paramètre avec le motif de correspondance le plus court supprimé. Si le paramètre est ‘@’ ou ‘ ‘, l’opération de suppression de modèle est appliquée à chaque paramètre positionnel et l’expansion est la liste résultante. Si paramètre est une variable de tableau indiquée par ‘@’ ou ‘ ‘, l’opération de suppression de modèle est appliquée à chaque membre du tableau et l’expansion est la liste résultante.

 dirname $PWD 

ou

 dirname $(pwd) 

realpath

 parent=$(realpath "$PWD/..")