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