Остановка команды поиска после нахождения файлов в одном каталоге

Скрипт выполняется нормально. Если бы не было, это не привело бы к появлению всех этих ошибок.

У вас есть следующие проблемы:

1) В вашем каталоге ... \ test1 нет файлов с суффиксом .apk, и ваш скрипт не был написан для обработки такого рода ошибок. То же самое для * .odex.

2_ Сценарий предполагает создание каталогов none и other , но они уже существуют (и выглядят как файлы, а не каталоги), и у него нет знает, как с этим справиться, поэтому выводит ошибку.

Остальные ошибки связаны с вышеизложенным.

Предложения:

1) Если у вас нет файлов * .apk, закомментируйте весь оператор if . В противном случае перейдите в каталог, в котором они есть.

2) Удалите файлы none и other , если они не требуются. Если они останутся в виде файлов, ваш скрипт никогда не создаст эти каталоги.

1
02.06.2015, 21:01
1 ответ

То, как я бы подходил к этому, - это петлю по каталогам, работает в каждом, пока он не совпадает.

for dir in path1 path2 path3
do
    echo "Searching $dir" >&2
    match=$(find "$dir" -type f -name "filename" 2>/dev/null)
    test -n "$match" && echo "$match" && break
done

Вы можете удалить два эхо утверждения, если вы хотите тихое решение. На выходе из петли, если $ Match не пустое, то он содержит полный путь и $ dir содержит каталог верхнего уровня, под которым его можно найти.

1
27.01.2020, 23:50

Теги

Похожие вопросы