Eu pretendo fazer um script para o mogrify. O comando mogrify redimensionará imagens em um diretório e colocará as imagens redimensionadas em um diretório no mesmo nível de diretório, com o mesmo nome do diretório de trabalho, mas com um sufixo (_a).
O novo diretório será movido para outra coleção posteriormente. Algo assim,
#!/bin/bash
mkdir ../n_a
for file in *{.JPG|.jpg}; do mogrify -path ../n_a -resize 1200x1200 -quality 96;done
Eu estou supondo ../ denota o diretório pai ao trabalhar em um diretório filho, mas preciso de ajuda aqui.
Editar: "n" precisa ser substituído pela sintaxe do nome do diretório de trabalho.
Desculpe, houve um erro de digitação também terceira linha de script, deveria ter lido não x
Edit2: Este script faz exatamente o que eu preciso e é silencioso.
#!/bin/bash
DEST="../${PWD##*/}_a"
mkdir -p $DEST
mogrify -path $DEST -resize 1200x1200 -quality 96 *.jpg *.JPG
obrigado ao vgoff pela sintaxe correta do PWD e pelo link do cesareriva por me mostrar a função DEST.
Outra coisa:
${PWD##*/}_a
não está cuidando de espaços no nome do diretório e o script falha. Um diretório vazio é criado no mesmo diretório das imagens.
Descobri agora, ele precisa de citações no $ DEST também, presumivelmente para ajudar o mkdir a criar o diretório com um espaço no nome e a organizar para gravar os arquivos no lugar certo, como este
#!/bin/bash
DEST="../${PWD##*/}_a"
mkdir -p "$DEST"
mogrify -path "$DEST" -resize 1200x1200 -quality 96 *.jpg *.JPG
Editar3:
Nem precisa de um script para isso, ou seja,
mkdir ../${PWD##*/}_a && mogrify -path ../${PWD##*/}_a -resize '1200x1200>' -quality 95 *{.jpg|.JPG}