ZSH: Разделяя путь, имя файла и расширение из списка файлов для передачи по каналу команды

Переместите файлы, которые Вы хотите держать отдельно. Поднимитесь один уровень, удалите папку. Воссоздайте папку и положите обратно те файлы.

4
31.08.2011, 07:00
3 ответа
for x in /path/to/source/**/*.ext1; do convert $x ${x:r}.ext2 done

r в ${x:r} модификатор истории. Существует краткая форма for это сохраняет несколько символов.

for x (/path/to/source/**/*.ext1) convert $x ${x:r}.ext2
7
27.01.2020, 20:48

Я сделал бы это с:

cd path_to_source
find . | sed 's/.ext1$//' | xargs convert {}.ext1 ../path_to_destination/{}.ext2
2
27.01.2020, 20:48

Вы можете обрабатывать файлы в пакетном режиме с помощью mogrify и конвертировать из одного формата в другой, используя параметр -path (начиная с imagemagick v6.2.0 ), чтобы указать другой каталог для вывода обработанных изображений:

mogrify -path /path/to/dest_filename -format ext2 /path/to/source_filename/*.ext1

, например,

mogrify -path /home/myjpgs -format jpg /media/images/*.png

преобразует все изображения .png в каталоге / media / images в jpg с тем же именем файла (изменяется только расширение) и сохранением полученного изображения в / home / myjpgs

1
27.01.2020, 20:48

Теги

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