Bash:
Проверка существования директории
Как это сделать:
Вот как проверить наличие директории в Bash:
if [ -d "/path/to/dir" ]; then
echo "Директория существует."
else
echo "Директории не существует."
fi
Пример вывода, если директория существует:
Директория существует.
И если её нет:
Директории не существует.
Да, это так просто. Но помните, что нужно заменить /path/to/dir
на фактический путь, который вы проверяете.
Глубокое Погружение
Давным-давно люди делали примерно то же самое, используя командные строки для проверок подобно тому, что мы делаем сегодня. Bash всегда имел встроенный способ проверки наличия файлов и директорий, потому что это фундаментальная потребность.
Теперь, почему -d
, а не что-то другое? В Bash -d
специально тестирует наличие директории. Есть и другие проверки, например, -f
для файлов или -e
для существования (файлов или директорий).
Иногда вы можете увидеть:
if [[ -d "/path/to/dir" ]]; then
# Двойные скобки для более современного и надежного подхода.
fi
Или даже &&
и ||
для краткости:
[ -d "/path/to/dir" ] && echo "Директория существует." || echo "Директории не существует."
Однако будьте осторожны — последний может ввести вас в заблуждение, если echo "Директория существует."
не выполнится по какой-либо причине, тогда echo "Директории не существует."
выполнится, даже если директория существует. Используйте его с осторожностью и пониманием.
Смотрите также
- Баш Условные Выражения: Руководство по GNU Bash
- Учебник по Скриптингу в Bash: Учебники Райана
- Продвинутое Руководство по Скриптингу в Bash: Проект Документации Linux