Debian 10: Проверка состояния служб

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

for pathname in "$folder"/*-[0-9].jpg; do
    [ -f "$pathname" ] && cp "$pathname" "${pathname%-[0-9].jpg}-mini.jpg"
done

Замена параметра ${variable%pattern}удаляет patternиз конца значения variable.

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


Используя find, сделайте то же самое:

find "$folder" -maxdepth 1 -type f -name '*-[0-9].jpg' -exec sh -c '
    for pathname do
        cp "$pathname" "${pathname%-[0-9].jpg}-mini.jpg"
    done' sh {} +
1
07.06.2020, 14:02
0 ответов

Теги

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