Meu objetivo é fazer um script para mogrify. O comando mogrify redimensionará as 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
Suponho que ../ 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 na terceira linha do script, deveria ter lido n, não x
Edit2: Este script faz exatamente o que preciso e é silencioso.
#!/bin/bash
DEST="../${PWD##*/}_a"
mkdir -p $DEST
mogrify -path $DEST -resize 1200x1200 -quality 96 *.jpg *.JPG
obrigado a vgoff pela sintaxe correta do PWD e cesarerivahttp://www.cesareriva.com/archives/722por me mostrar a função DEST.
Algo mais:
${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 também precisa de cotações no $ DEST, provavelmente para ajudar o mkdir a criar o diretório com um espaço no nome, e o mogrify para gravar os arquivos no lugar certo, assim
#!/bin/bash
DEST="../${PWD##*/}_a"
mkdir -p "$DEST"
mogrify -path "$DEST" -resize 1200x1200 -quality 96 *.jpg *.JPG
Edit3: Nem precisa de um script para isso, ou seja
mkdir ../${PWD##*/}_a && mogrify -path ../${PWD##*/}_a -resize '1200x1200>' -quality 95 *{.jpg|.JPG}
Responder1
Suponho que ../ denota o diretório pai ao trabalhar em um diretório filho, mas preciso de ajuda aqui.
Você acertou.
"n" precisa ser substituído pela sintaxe do nome do diretório de trabalho.
Ah, sim. Nesse caso, o pwd
comando será seu amigo. Preencha uma variável com ele ou use a $PWD
variável
Responder2
Sim. É o diretório pai.
Uma observação é que isso não é específico do bash. Não é nem casca. Faz parte da maneira como os sistemas de arquivos funcionam.
O sistema de arquivos possui uma entrada em cada diretório ..
e esse é o diretório pai. Cada um também possui uma entrada para .
representar o diretório atual.