위 디렉토리에 새 디렉토리를 생성하는 bash 구문은 무엇입니까?

위 디렉토리에 새 디렉토리를 생성하는 bash 구문은 무엇입니까?

Mogrify용 스크립트를 만드는 것을 목표로 하고 있습니다. mogrify 명령은 디렉터리의 이미지 크기를 조정하고 크기가 조정된 이미지를 작업 디렉터리와 이름은 동일하지만 접미사(_a)를 사용하여 동일한 디렉터리 수준의 디렉터리에 넣습니다.

새 디렉터리는 나중에 다른 컬렉션으로 이동됩니다. 이 같은,

#!/bin/bash  
mkdir ../n_a
for file in *{.JPG|.jpg}; do mogrify -path ../n_a -resize 1200x1200 -quality 96;done

../는 하위 디렉토리에서 작업할 때 상위 디렉토리를 나타내는 것 같지만 여기서는 도움이 필요합니다.

편집: "n"은 작업 디렉터리 이름에 대한 구문으로 바꿔야 합니다. 죄송합니다. 세 번째 스크립트 줄에도 오타가 있었습니다. x가 아닌 n으로 읽어야 했습니다.

Edit2: 이 스크립트는 내가 필요한 작업을 정확하게 수행하며 조용합니다.

#!/bin/bash
DEST="../${PWD##*/}_a"
mkdir -p $DEST
mogrify -path $DEST -resize 1200x1200 -quality 96 *.jpg *.JPG

올바른 PWD 구문과 cesareriva에 대한 vgoff에게 감사드립니다.http://www.cesareriva.com/archives/722나에게 DEST 함수를 보여줘서.

다른 것:

${PWD##*/}_a   

디렉토리 이름의 공백을 고려하지 않아 스크립트가 실패합니다. 이미지와 동일한 디렉토리에 빈 디렉토리가 생성됩니다.

지금 찾았습니다. $DEST에도 인용문이 필요합니다. 아마도 mkdir이 이름에 공백이 있는 디렉토리를 생성하고 다음과 같이 파일을 올바른 위치에 쓰기 위해 mogrify하는 데 도움이 될 것입니다.

#!/bin/bash
DEST="../${PWD##*/}_a"
mkdir -p "$DEST"
mogrify -path "$DEST" -resize 1200x1200 -quality 96 *.jpg *.JPG

Edit3: 이를 위한 스크립트도 필요하지 않습니다. 즉

mkdir ../${PWD##*/}_a && mogrify -path ../${PWD##*/}_a -resize '1200x1200>' -quality 95 *{.jpg|.JPG}

답변1

../는 하위 디렉토리에서 작업할 때 상위 디렉토리를 나타내는 것 같지만 여기서는 도움이 필요합니다.

당신의 추측이 맞았습니다.

"n"은 작업 디렉터리 이름에 대한 구문으로 바꿔야 합니다.

아하. 이 경우 pwd명령은 친구가 될 것입니다. 변수를 채우거나 $PWD변수 를 사용하십시오.

답변2

예. 상위 디렉토리입니다.

한 가지 참고 사항은 이것이 bash에만 국한되지 않는다는 것입니다. 심지어 껍질도 아닙니다. 이는 파일 시스템이 작동하는 방식의 일부입니다.

파일 시스템에는 각 디렉토리에 항목이 있으며 ..이는 상위 디렉토리입니다. 각각에는 .현재 디렉터리를 나타내는 항목도 있습니다 .

관련 정보