В bash не нужно городить ls | grep. Для проверок есть встроенные тесты, более быстрые и надежные.
▪️ Обычный файл -
-f
[ -f file.txt ] && echo "Файл существует"
Истина, если: файл есть и это не каталог
▪️ Каталог -
-d
[ -d /etc/nginx ] && echo "Каталог существует"
Полезно перед: копированием, cd или очисткой директорий
▪️ Символическая ссылка -
-L
[ -L /usr/bin/python ] && echo "Это symlink"
Работает даже если ссылка битая.
▪️ Просто что-то существует -
-e
[ -e path ] || echo "Ничего нет"
Файл, каталог, ссылка - все подряд.
▪️ Шпаргалка
-fобычный файл-dкаталог-Lsymlink-eсуществует
BashTex 📱 #bash #utils