TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.2K subscribers
Post #188 145
Проверка наличия файла в Bash 📂

Обсудим очень полезную тему: как проверить, существует ли файл в сценариях на языке Bash. Важность такой проверки заключается в том, что перед тем как работать с файлом, нам необходимо убедиться, что он действительно существует. Для этого есть несколько способов.

Первый способ:

filename="test.txt"

if [ -f $filename ];
then
echo "Файл существует"
fi

В этом примере мы используем ключ -f, который означает "истина", если файл существует и является обычным файлом. То есть это не директория, не символическая ссылка и не что-то другое, а именно обычный файл.

Второй способ:

if test -f $filename;
then
echo "Файл существует"
fi

Обратите внимание, что оба этих способа делают одно и то же. Однако в большинстве случаев предпочтительнее использовать первый вариант.

Также мы можем использовать инверсию логики, чтобы проверить, что файла нет:

if [ ! -f $filename ];
then
echo "Файл не найден"
fi

Или так:

if ! test -f $filename;
then
echo "Файл не найден"
fi

Но что делать, если вам нужно уместить всю эту проверку в одной строке? Вот так:

[ ! -f "$filename" ] && echo "Файл не найден" || echo "Файл существует"

Такие сокращенные конструкции могут быть полезны, но имейте в виду, что они могут усложнить читаемость кода.

Важно помнить, что ключ -f - это только один из ключей для проверки файлов и директорий. Для более сложных проверок, таких как проверка директории, сокета или прав доступа, существуют другие ключи.

Пусть эти знания пригодятся вам при написании Bash-скриптов. Ведь даже такие базовые вещи могут значительно облегчить вашу работу! 💡🚀
  • 👍 3
More from @loose_code
  1. Oct 12, 2026DevOps-инструмент недели: Popeye Со временем в Kubernetes-кластерах могут накапливаться не…
  2. Oct 12, 2026Безопасный код ≠ безопасный прод 16 октября на онлайн-трансляции PSD 2026 команда AppSec P…
  3. Oct 8, 2026Интересный и полезный опенсорс-инструмент Как часто приходилось открывать консоль AWS и др…
  4. Oct 8, 2026В этом туториале показано, как разворачивать и масштабировать большие языковые модели (LLM…
  5. Oct 6, 2026Как работает Kubernetes Cluster Autoscaler? Базовый флоу выглядит так Pending Pod → Cluste…
  6. Oct 1, 2026Обработка миллионов файлов – это та точка, где большинство распределённых систем хранения…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →