Скрипт лучше оформить так:
#!/bin/bash
case "$1" in
""|-h|-help|--help)
echo '
ИСПОЛЬЗОВАНИЕ:
'$0' ДИРЕКТОРИЯ
ОПИСАНИЕ:
Скрипт конвертирует файлы картинок из текущей директории (ИСТОЧНИК)
в директорию указанную в первом аргументе скрипта (НАЗНАЧЕНИЕ).
Конвертируются все файлы картинок из директории ИСТОЧНИК
и всех ее поддиректорий.
Шаблон имен файлов картинок: ".jpe?g"
В директории НАЗНАЧЕНИЕ создаются все поддиректории
из директории ИСТОЧНИК содержащих файлы картинок.
'
exit
;;
esac
SOURCE_DIR="$PWD"
TARGET_DIR="$1"
[ -d "$TARGET_DIR" ] || { echo 'Ошибка: Директория НАЗНАЧЕНИЕ не найдена.' ; exit 1 ; }
find "$SOURCE_DIR" -type f -iregex '.*\.jpe?g' \
| while read i
do
echo "Обрабатывается $i ..."
idir="${i%/*}"
itargetdir="${TARGET_DIR}${idir#$SOURCE_DIR}"
mkdir -p "$itargetdir"
convert "$i" -resize 1024 -quality 90 "${itargetdir}/${i##*/}"
done
echo "Завершено!"
Назвать например jpeg_conv, положить в папку ~/bin (создать если нет), и сделать:
chmod +x ~/bin/jpeg_conv
Теперь открыв терминал в любой нужной папке можно просто вызывать скрипт
и делать конвертацию картинок из текущей папки в папку назначения:
jpeg_conv "/путь/до/папки/назначения"