파일 이름을 기준으로 작성된 날짜 변경


1

Instagram 이미지를 많이 다운로드했지만 파일을 만든 날짜는 다운로드를 시작한 시간으로 설정되어 있습니다. 내가 가지고있는 것은 파일 이름에 작성된 날짜입니다. 내가하고 싶은 일은 파일 이름의 날짜를 YYYYMMDDhhmm으로 변경하고 각 파일의 작성 날짜로 설정하는 것입니다.

touch -t명령이 선호 하는 형식이기 때문에 파일 이름의 날짜를 YYYYMMDDhhmm으로 변경했습니다 . 이제 필요한 것은 파일 이름의 처음 12자를 가져 와서 touch -t파일을 터치 한 날짜로 전달한 다음 전체 파일 이름으로 따르는 방법입니다.

각 개별 이미지에서 날짜를 전달할 수 있도록 Hazel과 쉘 / AppleScript를 함께 사용하여이 작업을 수행 할 수 있다고 생각합니다.

어떤 도움을 위해 건배 :)


touch -t생성 날짜 만 변경할 경우 apple.stackexchange.com/q/49154/9058 ... 생성 또는 수정 날짜를 변경 하시겠습니까? 둘 다 가능하지만 해결책은 다릅니다.
nohillside

작성일. 수동 테스트 touch -t 201010201000 /Users/smithjw/Dropbox/Extracted/instagram/test/201010201000\ 1287551285.jpg에서 작성 날짜 를 입력 하면 수정됩니다.
smithjw

그것이 수정 날짜 man touch입니다.를 참조하십시오 . ls -lU작성 날짜를 표시하는 데 사용 합니다.
nohillside

글쎄, 나는 내 시스템에서 무슨 일이 일어 났는지는 모르지만 내가 사용했을 때 수정 날짜뿐만 아니라 작성 날짜도 변경되었습니다.touch -t
smithjw

파일 이름은 정확히 어떻게 표시됩니까? 데이트 일까? 날짜가 처음이고 공백이 있습니까? 대시? 그들은 끝에 있습니까?
Conner

답변:


1

그래서 약간의 사냥 후에 나는 Mac OS X Hints 에서이 작은 AppleScript를 발견했습니다. 감사합니다 Krioni ! 나는 약간의 땜질을 사용하여 파일 이름으로 작업하도록 수정할 수 있지만 스크립트에 맞게 이미지 파일 이름을 일괄 편집했습니다.

on open files_
    repeat with file_ in files_
        tell application "Finder"
            set file_name to name of file_
            set od to AppleScript's text item delimiters
            set AppleScript's text item delimiters to {"_"}
            set new_creation_date to second text item of file_name
            set new_creation_date to new_creation_date & "1000"
            set file_ to POSIX path of file_
            do shell script "touch -t " & new_creation_date & " " & quoted form of file_
            set AppleScript's text item delimiters to od
        end tell
    end repeat
end open

밑줄 사이에서 파일 이름의 두 번째 텍스트 항목을 찾아서 날짜로 사용합니다. 그런 다음 명령에 "1000"시간을 추가합니다 touch. 잘하면 이것은 다른 누군가를 도울 것입니다.

원래 스레드는 여기 에서 찾을 수 있습니다 .


1

touch -t 대상 (수정) 날짜가 원래 작성 날짜 이전 인 경우에만 작성 날짜를 변경합니다.

for f in *.jpg; do touch -t ${f% *} "$f" && mv "$f" "${f#* }"; done

SetFile -d 항상 생성 날짜를 변경합니다.

-d date    Sets the creation date, where date is a string of the
           form: "mm/dd/[yy]yy [hh:mm:[:ss] [AM | PM]]"

for f in *.jpg; do date=$(printf %s "$f" | sed -E 's|^(....)(..)(..)(..)(..).*|\2/\3/\1/ \4:\5|'); SetFile -m "$date" -d "$date" "$f" && mv "$f" "${f#* }"; done

SetFile은 developer.apple.com/downloads 또는 Xcode의 환경 설정 에서 다운로드 할 수있는 명령 행 도구 패키지의 일부입니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.