[Mac] 맥에서 사진 생성일, 수정일 변경하기 :: 소림사의 홍반장!

신혼여행 다녀온 사진을 정리하던 중 날짜/시간 표시가 잘 못 저장되어 있는 녀석들을 발견했다.....


이걸 어쩐담..


찾아보니 별다른 프로그램 없이 터미널에서 심플하게 변경할 수 있는 명령어가 있더라.


이름하여 SetFile




만약 SetFile이 없는 경우에는 Xcode의 CLI 패키지를 설치해야 함. (Xcode 없이 맥에 '명령어 라인 도구(Command Line Tools)'를 설치하는 방법)


사용법은 이렇게..


➜  SetFile -d "11/20/2016 00:00:00" -m "11/20/2016 00:00:00" ./2016_0101_013618_001.JPG


파일여러개도 한번에 바꿀 수 있겠군.


굿~!



팁 추가!


일반적인 사용은 날짜와 시간을 같이 입력하여야 하므로 직접 입력하면 시간은 그대로 두고 날짜만 변경하지 못한다.


좀 찾아보니 GetFileInfo 이런 녀석도! ㅎ


이 녀석을 응용하면


➜  SetFile -d "09/09/2017 $(GetFileInfo -d ./2016_1016_073014_004.JPG | cut -d' ' -f 2)" -m "09/09/2017 $(GetFileInfo -d ./2016_1016_073014_004.JPG | cut -d' ' -f 2)" ./2016_1016_073014_004.JPG


이런식으로 사용할 수 있다.


아 중간에 cut 이란 명령어가 들어갔는데 GetFileInfo 로 조회하면 날짜 시간이 같이 조회되어서 시간만 잘라 준 것.


음.. 여러파일 한번에 수정하려면 불편해서 스크립트 만들어봤습니다.


#!/bin/bash


while getopts d:f: option


do

echo option:$option


case "${option}"

in


d) DATE=${OPTARG};;

f)

  for FILE in "$@"

  do

    if [ -f ${FILE}  ]

      then

        echo "target : $FILE"


        # get as-is time

        orgdatetime=$(GetFileInfo -d "$FILE")

        echo "as-is : $orgdatetime"


        # extract time

        time=$(GetFileInfo -d "$FILE" | cut -d' ' -f 2)


        # Get new date in format that SetFile wants

        newdate=$DATE' '$time

        echo "to-be : $newdate"


SetFile -d "$newdate" -m "$newdate" $FILE

fi

  done

  ;;

esac

done


사용법

➜  ./ReDate -d "09/12/2017" -f ./2016_1019*


다른 카테고리의 글 목록

Dev. 운영체제(OS)/IOS 카테고리의 포스트를 톺아봅니다