@Heliopause

Скрипт который прерывается если в директории есть 2 файла с похожим названием?

Добрый день!
Нужен скрипт который будет прерываться если в директории находятся 2 или более файлов с похожим названием.
Пример, в /home/user лежат файлы test14 test12 test123 test1234. Необходимо чтобы скрипт проверил директорию, и в случае если в ней лежит только один файл test14 завершился успешно, а если в ней находятся файлы указанные выше, то прерывался.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 3
shambler81
@shambler81 Куратор тега Linux
я немного по другому выбрал количество файлов, но и верхний ответ тоже подходит, в зависимости от сложности имени файла возможно вариант с греп более предпочтительный поскольку можно задать более сложную маску файла, но в текущем тз подходят оба варианта

if [ "$(ls test* | wc -l)" -le "2" ] ; then  echo true; else echo false; fi


65311378f2f2f476815859.png
Для удобства записал в одну строку.

if -fi -условие

-le - больше или равно
then - если условие сработало то выводит эхо
else - в противном случае
Ответ написан
xotkot
@xotkot
хорошо есть и хорошо весьма
Пример, в /home/user лежат файлы test14 test12 test123 test1234. Необходимо чтобы скрипт проверил директорию, и в случае если в ней лежит только один файл test14 завершился успешно, а если в ней находятся файлы указанные выше, то прерывался.


случайный набор цифр после слова test


скрипт, строчка, вставить
(( $(ls /home/user |grep -c ^test) > 1 )) && exit
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
ls -1 | grep -c test Засовываете это в if и делаете соответствующее ветвление.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы