공백과 작동하지 않는 Bash를 사용하여 Mac OS X에서 생성 날짜별로 사진 이름을 일괄 변경합니다.

공백과 작동하지 않는 Bash를 사용하여 Mac OS X에서 생성 날짜별로 사진 이름을 일괄 변경합니다.

Mac OS X에서 사진 이름을 일괄적으로 바꾸는 방법에 대한 솔루션을 찾고 있습니다. 많은 솔루션을 찾았지만 파일에 공백이 있거나 공백을 넣으려는 경우 대부분이 작동하지 않습니다. 파일 이름에.

예를 들어 다음 스크립트를 찾았습니다.

for i in *.jpg; do newname=$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- $i); mv -- $i $newname.jpg; done

최종 파일 이름에 공백을 넣지 않는 한 스크립트는 작동합니다(Windows에서 지난 3년 동안 공백을 사용하여 파일 이름을 변경했기 때문에 파일 이름에 공백을 넣기를 원합니다). 또한 파일 자체에 공백이 있으면 중단됩니다. 따라서 "Hello World.jpg"라는 사진이 있으면 처리되지 않습니다.

누구든지 해결책을 주시겠습니까? 추가 소프트웨어가 필요하지 않은 것이 바람직합니다(컴퓨터를 전환할 때마다 해당 스크립트를 복사하여 붙여넣을 수 있기를 원합니다).

감사합니다!

답변1

대체 항목에는 따옴표를 사용해야 합니다.

for i in *.jpg; do newname="$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- "$i")"; mv -- "$i" "$newname.jpg"; done

변수와 확장을 허용하려면 큰따옴표가 필요합니다 $().

답변2

$i일반적 으로 로 대체하면 충분합니다 "$i".

관련 정보