Копирование всех фотографий альбомного формата из одной папки в другую (Linux, Imagemagick)

Возникла необходимость перенести все фотографии альбомного формата из одной папки в другую, при этом, не копируя фотографии других форматов. В ручную, с многими тысячами фотографий сделать такое долго, начал искать путь автоматизации. Гугл не дал ответ на данную задачу, поэтому пришлось писать решение самому. У меня операционная система Linux Mint. Поэтому, сделал решение с помощью командного интерпретатора Bash с использованием библиотеки Imagemagick. Такое решение работает в Linux, но, как я писал ранее, можно сделать и в Windows, перенеся команды Linux в Windows вместе с библиотекой Imagemagick. Получившийся скрипт: # Перемещает фотографии с альбомной ориентацией #!/bin/bash export src=”/photo/photo_2020″ export dest=”/photo/album_2020″ echo “src=$src” echo “dest=$dest” for file in `find “$src” -type f -name “*.jpg”` do width=$(identify -ping -format “%w” “$file”) height=$(identify -ping -format “%h” “$file”) orient=$(identify -format ‘%[EXIF:Orientation]’ “$file”) echo “file=$file”; # Orientation: # Undefined – 0 # Undefined – [When no metadata] # TopLeft – 1 # TopRight – 2 # BottomRight – 3 # BottomLeft – 4 # LeftTop – 5 # RightTop – 6 # RightBottom – 7 # LeftBottom – 8 if (((orient==1))&&((width > height)))||(((orient==6))&&((height > width))) ; then echo “Yes! h=$height; w=$width”; echo “Orient=$orient”; mv $file $dest else echo “NO. $height; w=$width”; echo “Orient=$orient”; fi done Src – каталог, откуда копируем. Dest – каталог, куда копируем. Пробегаемся по всем jpg-файлам. Переносим только файлы альбомного размера. Автор: Рудюк С.А.  

Read more