Controleer of een directory bestaat in een shellscript
Welk commando kan worden gebruikt om te controleren of een directory bestaat of niet, binnen een shellscript?
3538
3
Welk commando kan worden gebruikt om te controleren of een directory bestaat of niet, binnen een shellscript?
Om te controleren of een directory bestaat in een shellscript kunt u het volgende gebruiken:
Of om te controleren of een directory'niet bestaat:
Echter, zoals Jon Ericson aangeeft, kunnen volgende commando's niet werken zoals bedoeld als je er geen rekening mee houdt dat een symbolische link naar een directory ook door deze controle zal komen. Bijvoorbeeld als je dit uitvoert:
zal de foutmelding geven:
Het kan dus zijn dat symbolische links anders behandeld moeten worden, als volgende commando's directories verwachten:
Let vooral op de dubbele aanhalingstekens die gebruikt worden om de variabelen te verpakken, de reden hiervoor wordt uitgelegd door 8jean in een ander antwoord.
Als de variabelen spaties of andere ongebruikelijke tekens bevatten, zal het script waarschijnlijk mislukken.
Merk op dat de -d test verrassende resultaten kan opleveren:
Bestand onder: "Wanneer is een directory geen directory? " Het antwoord: "Wanneer het een symlink is naar een directory." Een iets grondigere test:
Je kunt meer informatie vinden in de Bash handleiding over Bash voorwaardelijke expressies en de [
[
builtin command](https://www.gnu.org/software/bash/manual/bash.html#index-_005b) en de [[[
compound commmand](https://www.gnu.org/software/bash/manual/bash.html#index-_005b_005b).Meer functies met
find
Controleer het bestaan van de map in sub-mappen:
Controleer het bestaan van een of meer mappen op basis van een patroon in de huidige map:
Beide combinaties. In het volgende voorbeeld wordt het bestaan van de map in de huidige directory gecontroleerd: