Qual é a sintaxe bash para criar um novo diretório no diretório acima?

Qual é a sintaxe bash para criar um novo diretório no diretório acima?

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 pwdcomando será seu amigo. Preencha uma variável com ele ou use a $PWDvariá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.

informação relacionada