2015-04-11 3 views

ответ

1
find . -type f -name "*.jpg" | while read i; do [[ "${i##*/}" =~ ^tn_ ]] || convert "$i" -resize 50% "${i%/*}/tn_${i##*/}"; done 

Вы имеете в виду вот это?

${i%/*} - это имя файла, лишенное всего, следующего за последней тире (так что каталог, в котором находится файл).

/tn_ добавляет префикс tn_ к файлу, и

${i##*/} полосы все из файла до последней черты (так что это имя файла).

Вставьте эти три вместе, и вы получите свой результат.

+0

Да. но у меня ошибка "convert.im6: невозможно открыть изображение' tn_./sets/testl/test-123.jpg.jpg ': Нет такого файла или каталога @ error/blob.c/OpenBlob/2638. " – user3447705

+0

Попробуйте следующее: '' $ {i%/*}/tn _ $ {i ## * /} "' – ShellFish

+0

спасибо вам большое! – user3447705

Смежные вопросы