В Bash, как проверить, существует ли каталог с указанным путем?

372
OldManRiver

У меня есть следующий код Bash:

drlist="/backups /Blogs /data /dpkg-repack /Scripts /var/www"; for word in $drlist; do echo $word; done 

Что мне нужно сделать, так это проверить, $wordсуществует ли каталог как каталог и, если нет, сделать:

mkdir $word; chown -R $user:users $word; chmod -R 775 $word; 

Тогда все каталоги существуют и правильно настроены для последующей обработки.

-1
Извините, не удалось перейти в режим «код» с моего телефона! OldManRiver 8 лет назад 0
К вашему сведению: четыре ведущих пробела делают строку в формате кода. Kamil Maciorowski 8 лет назад 0

1 ответ на вопрос

1
OldManRiver

Последний код:

drlist="/backups /Blogs /data /dpkg-repack /Scripts /var/www"; for word in $drlist; do if [[ -d "$word" ]]; do echo "Found Dir=> $word"; else echo "Creating Dir=> $word"; mkdir -p $word; chown -R $user:users $word; chmod -R 775 $word; fi done 

Конечно, я действительно не хочу видеть никакого эха и не могу устранить негатив для теста dir, поэтому мне все еще нужна небольшая помощь с этим.

На текущей тестируемой машине она работала правильно, находя все, кроме каталога «Блоги», который она правильно создала!

Ура!

OMR