Comment vérifier si un répertoire existe en ligne de commande Linux?


28

Comment vérifier si un répertoire existe en ligne de commande Linux?

Solution: [ -d ¨a¨ ]&&echo ¨exists¨||echo ¨not exists¨


4
Alors marquez-le comme la solution.
BlueRaja - Danny Pflughoeft

Réponses:


40
$ if test -d /the/dir; then echo "exist"; fi 

J'en ai besoin en ligne de commande, pas dans un script.

5
C'est la ligne de commande. Vous pouvez taper cela dans bash directement, ou vous pouvez le reprendre à test -d /the/dir: test -d /the/dir && echo "exist" || echo "does not exist"mais ils sont vraiment les mêmes.
David Rodríguez - dribeas

La coquille de tout le monde ne l'est pas bash!
reinierpost

@reinierpost alors bonne chance à vous ...
Stefano Borini

@Stefano Borini: J'utilise toujours tcshparce que je suis trop paresseux pour réécrire mon .tcshrc. Mais plus précisément: cela aurait pu expliquer le problème du PO.
reinierpost

11

En supposant que votre shell est BASH:

if [ -d /the/dir ]; then echo 'Exists'; else echo 'Not found'; fi

erreur de syntaxe près du jeton inattendu «alors»

Ensuite, déterminez ce qu'est votre coquille. Peut csh- être ou tcsh?
reinierpost

8
[ -d /home/bla/ ] && echo "exits"

Puis-je avoir quelque chose comme ELSE, pour afficher un texte même si le répertoire n'existe pas?

Solution:[ -d /home/bla/ ] && echo "exist" ; [ ! -d /home/bla/ ] && echo "doesnt exist"
learningloop

7

La manière canonique est d'utiliser l'utilitaire test (1):

test -d path

où "chemin" est le chemin d'accès du répertoire en question.


La commande ne semble pas fonctionner seule, mais lorsqu'elle est associée à un echo "Directory Exists".
Ejaz

2

[ -d "YOUR_DIR" ] && echo "is a dir"

par exemple:

[ -d / ] && echo "root dir"

affichera: root dir.


[-d: commande introuvable, voici ce que j'obtiens

Entre "[" et "-" DOIT être un espace. Cela devrait fonctionner sur Bourne et shell Bash.

0

Pour vérifier si un répertoire existe dans un script shell, vous pouvez utiliser ce qui suit:

dir=$1

if [ -d "$dir" ]; then

 #means that $dir exists.

fi

pour vérifier le contraire, ajoutez !avant-d ->[ ! -d ....]


Bienvenue sur Super User! Cela duplique une autre réponse et n'ajoute aucun nouveau contenu. Veuillez ne pas poster de réponse à moins que vous ayez réellement quelque chose de nouveau à apporter.
DavidPostill
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.