Bash:
Controleren of een directory bestaat
Hoe:
Zo controleer je of een directory bestaat in Bash:
if [ -d "/pad/naar/map" ]; then
echo "Directory bestaat."
else
echo "Directory bestaat niet."
fi
Voorbeelduitvoer als de directory bestaat:
Directory bestaat.
En als het niet bestaat:
Directory bestaat niet.
Ja, het is zo eenvoudig. Maar vergeet niet om /pad/naar/map
te vervangen door het daadwerkelijke pad dat je controleert.
Dieper Duiken
Lang geleden deden mensen min of meer hetzelfde, door commandolijntests te gebruiken vergelijkbaar met wat we vandaag de dag doen. Bash heeft altijd een ingebouwde manier gehad om bestanden en directories te controleren, omdat het een fundamentele behoefte is.
Nu, waarom -d
en niet iets anders? In Bash test -d
specifiek op de aanwezigheid van een directory. Er zijn ook andere tests, zoals -f
voor bestanden of -e
voor bestaan (bestanden of directories).
Soms zie je misschien:
if [[ -d "/pad/naar/map" ]]; then
# Dubbele haakjes voor een beetje meer moderne, robuuste aanpak.
fi
Of zelfs &&
en ||
voor kortere notaties:
[ -d "/pad/naar/map" ] && echo "Directory bestaat." || echo "Directory bestaat niet."
Wees echter voorzichtig - deze laatste kan misleidend zijn als echo "Directory bestaat."
om een of andere reden faalt, dan zal echo "Directory bestaat niet."
uitgevoerd worden, zelfs als de directory bestaat. Gebruik het met voorzichtigheid en begrip.
Zie Ook
- Bash Voorwaardelijke Expressies: GNU Bash Handleiding
- Bash Scripting Tutorial: Ryans Tutorials
- Geavanceerde Bash Scripting Gids: Het Linux Documentatie Project