신혼여행 다녀온 사진을 정리하던 중 날짜/시간 표시가 잘 못 저장되어 있는 녀석들을 발견했다.....
이걸 어쩐담..
찾아보니 별다른 프로그램 없이 터미널에서 심플하게 변경할 수 있는 명령어가 있더라.
이름하여 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' 카테고리의 다른 글
[tip] mac mojave screenshot 소소한 팁! - option키 눌러진 메뉴바 캡쳐 (0) | 2018.10.23 |
---|---|
[Mac Tip] 맥 finder에서 파일 경로 복사하기 (0) | 2018.10.19 |
xcrun: error: invalid active developer path 해결 (0) | 2018.04.24 |
[Mac tip] gitkraken terminal command line open 실행 (0) | 2017.11.27 |
[Mac IOS] 맥에서 문자형 특수 기호 (제곱미터, 세제곱미터 등) 사용하기 (1) | 2016.06.28 |