Natknąłem się na plik binarny o nazwie „nconvert”. Skopiowałem je do / usr / local / bin. Następnie stworzyłem prosty rekurencyjny skrypt powłoki, aby przejść przez folder i podfoldery i przekonwertować dowolne zdjęcie wymagające konwersji.
#!/bin/sh
function recursion {
if [ $(find . \( -iname "*jpeg" -or -iname "*jpg" \) -maxdepth 1 -type f | wc -l) -gt 0 ]; then
_fullpath=`pwd`
echo "Processing $_fullpath"
echo "Processing $_fullpath" > $HOME/logs/recursive-autorotate-photos.log
nconvert -jpegtrans exif -overwrite *.jpg
fi
for _item in *; do
if [ -d "$_item" ]; then
(cd "$_item"; recursion)
fi
done
}
if [ ! -z "$1" ]; then
if [ ! -d "$HOME/logs" ]; then
mkdir "$HOME"/logs
fi
echo "" > $HOME/logs/recursive-autorotate-photos.log
cd "$1"
recursion
else
echo "Usage: recursive-autorotate-photos.sh path-here"
fi
przykład: # recursive-autorotate-photos.sh "/ Woluminy / mój-zewnętrzny dysk / zdjęcia"
zanotuj cytaty na ścieżce. jeśli na ścieżce jest spacja, musisz ją ująć w podwójne cudzysłowy. Zawsze używam podwójnych cytatów z nawyku.