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에만 국한되지 않는다는 것입니다. 심지어 껍질도 아닙니다. 이는 파일 시스템이 작동하는 방식의 일부입니다.
파일 시스템에는 각 디렉토리에 항목이 있으며 ..
이는 상위 디렉토리입니다. 각각에는 .
현재 디렉터리를 나타내는 항목도 있습니다 .