Então eu tenho trabalhado nisso por um tempo e acho que estou pronto para desistir. Estou tentando processar subpastas com montage
do imagemagick para criar folhas de contato.
Isso é basicamente o mais perto que eu cheguei:
find '/dir-with-spaces/' -type f -regex ".*\.\(JPG\|jpg\|jpeg\|JPEG\)" -print0 | \
while IFS= read -r -d $'/media/pictures/folder1/folder2/pic1.jpg...pic100.jpg --> media-pictures-folder1-folder2.jpg
' line;\
do \
montage "$line" "${line}".jpg; \
done
Usando este comando, o Montage processa cada imagem individualmente. O comportamento que eu quero é encontrar para procurar o diretório mais baixo para fotos, fazer backup, enviar tudo para montage
e, em seguida, continuar na próxima pasta com a folha de contatos resultante nomeada com a árvore de pastas inteira.
ou seja:
#This just hangs montage forever
find . -name *.jpg -printf '%h\n' | sort -u | xargs -I {} montage {}/*
#I need a "+" here for -execdir, but I don't think I can use it with montage's argument structure.
find . -name *.jpg -execdir montage {} test.jpg \;
Algumas outras coisas que tentei criar são:
folder1
folder1_1
folder1_2
folder1_3
*.jpg
folder2
folder2_1
*.jpg
folder3
folder3_1
folder3_2
folder3_4
folder3_5
*.jpg
A estrutura de diretórios é algo como:
find '/dir-with-spaces/' -type f -regex ".*\.\(JPG\|jpg\|jpeg\|JPEG\)" -print0 | \
while IFS= read -r -d $'/media/pictures/folder1/folder2/pic1.jpg...pic100.jpg --> media-pictures-folder1-folder2.jpg
' line;\
do \
montage "$line" "${line}".jpg; \
done
Executando o Ubuntu 14.10
Qualquer ajuda sobre isso seria muito apreciada.