Mit welchem Befehl kann man in einem Bash-Shell-Skript prüfen, ob ein Verzeichnis existiert oder nicht?
Antworten
Zu viele Anzeigen?
bailey86
Punkte
241
Brad Parks
Punkte
59613
Diese Antwort als Shell-Skript verpackt
Beispiele
$ is_dir ~
YES
$ is_dir /tmp
YES
$ is_dir ~/bin
YES
$ mkdir '/tmp/test me'
$ is_dir '/tmp/test me'
YES
$ is_dir /asdf/asdf
NO
# Example of calling it in another script
DIR=~/mydata
if [ $(is_dir $DIR) == "NO" ]
then
echo "Folder doesnt exist: $DIR";
exit;
fi
is_dir
function show_help()
{
IT=$(CAT <<EOF
usage: DIR
output: YES or NO, depending on whether or not the directory exists.
)
echo "$IT"
exit
}
if [ "$1" == "help" ]
then
show_help
fi
if [ -z "$1" ]
then
show_help
fi
DIR=$1
if [ -d $DIR ]; then
echo "YES";
exit;
fi
echo "NO";
kenorb
Punkte
134883
Gemäß Jonathan Kommentar:
Wenn Sie das Verzeichnis erstellen wollen und es noch nicht existiert, dann ist die einfachste Technik die Verwendung von mkdir -p
das das Verzeichnis - und alle fehlenden Verzeichnisse im Pfad - erstellt und nicht fehlschlägt, wenn das Verzeichnis bereits existiert, so dass Sie alles auf einmal mit:
mkdir -p /some/directory/you/want/to/exist || exit 1
Aybak3k
Punkte
84
Abhishek Gurjar
Punkte
7320