Проверка существования директории

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 "Директории не существует." выполнится, даже если директория существует. Используйте его с осторожностью и пониманием.

Смотрите также