Wie kann man in Bash testen, ob es ein Verzeichnis mit dem angegebenen Pfad gibt?

410
OldManRiver

Ich habe den folgenden Bash-Code:

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

Was ich tun muss, ist zu testen, ob das $wordals Verzeichnis existiert und wenn nicht:

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

Dann sind alle Verzeichnisse vorhanden und für meine nachfolgende Verarbeitung korrekt festgelegt.

-1
Leider konnte ich nicht von meinem Telefon in den "Code" -Modus gelangen! OldManRiver vor 7 Jahren 0
Zu Ihrer Information: Vier führende Leerzeichen machen die Zeile als Code formatiert. Kamil Maciorowski vor 7 Jahren 0

1 Antwort auf die Frage

1
OldManRiver

Letzter Code:

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 

Natürlich möchte ich wirklich keine Echos sehen und konnte das Negativ für den dir-Test nicht auflösen, daher brauche ich noch ein wenig Hilfe.

Auf dem aktuell getesteten Rechner lief dies korrekt und fand alle außer den "Blogs" -Ordnern, die korrekt erstellt wurden!

Prost!

OMR