2013-07-08 2 views
-1

카메라에서 잘못 설정 되었기 때문에 잘못된 날짜 (파일 생성 날짜, ls -l에 표시된 값)의 이미지 파일이 있습니다. 디렉토리에서 모든 * .jpg 파일을 변경하는 스크립트에서 날짜를 2 일씩 늘리는 방법은 무엇입니까? Bash, Perl, Linux 컴퓨터에서 실행되는 작업은 그 작업에 적합합니다.파일 날짜를 프로그래밍 방식으로 수정하는 방법은 무엇입니까?

웹 검색 나는 touch이 날짜를 조작하는 데 사용된다는 것을 알았지 만 시간을 보존하면서 2 일씩 늘리는 방법을 찾지 못했습니다.

감사합니다.

+0

날짜가 인코딩 된 위치를 보여주는 파일 이름/콘텐츠의 예를 제공하십시오. 그리고 당신이 시도한 것을 보여주십시오. – DVK

+0

편집 된 질문에 대한 추가 정보가 필요합니다. – Twonky

답변

1

touch은 작업을위한 도구입니다.

for file in P123*.JPG ; do 
    touch --date="$(date -r $file) + 2 days" $file 
done 
+0

작업을 수행하기 위해 솔루션을 수정해야했지만 마침내 그렇게 할 수있었습니다. 실제 해결책은 다음과 같습니다 :''for file in * .JPG; -d "'date -r $ file '+ % F % T'' 2 일"$ file;을 터치하십시오. done''당신의 솔루션은 항상 오류를주었습니다 : "잘못된 날짜", 그래서'+ % F % T' 포맷 옵션을 추가하고'+'는 완전히 이상한 결과를주었습니다 ('+ 2 일' 3 일간은 1 일에서 1 시간을 더한 것). – Twonky

+0

@Twonky : 영어가 아닌 '로케일'이 유효합니까? – choroba

+0

네, 그 독일인. – Twonky

2

touch을 사용하면 modtime을 변경할 수 있습니다.

날짜를 사용하려면 date을 사용하십시오. 테스트되지 않은

:

for f in *jpg; do 
    mtime=`date -r $f` 
    nextt=`date "$mtime + 2 days"` 
    touch -d "$nextt" $f 
done 
+0

귀하의 링크 뒤에있는 터치에 대한 설명서는이 작업을 수행하기 위해 -t 또는 -d 옵션이 필요하다는 것을 나타냅니다. – innaM

5

내가 대신 (다른 모든 응답 @this 시간 같은) 파일의 날짜를 수정하는, 당신은 metadatas을 수정 좋아, 그래서이 페이지를 볼 것이라고 생각 : 당신이 http://savvyadmin.com/fixing-dates-in-image-exif-tag-data-from-linux/

jhead 사용 (또는 exiv2)이 같은 :

jhead -ts2003:01:01-00:00:00 image.jpg 

마지막으로, 특별한 스위치있다 직접 날짜를 수정하려면: 예. 2 일 후 :

for i in *.jpg; do jhead -ta+48:00 "$i"; done 
+0

한 줄에 각 JPG 파일에 2 일을 추가하는 루프가있는 편집 된 게시물보기 –

+0

+1 : 예, 수정해야하는 META 데이터이며 파일 날짜 자체는 아닙니다. –

+0

아니요, 저는 파일 날짜를 의미했습니다. 그러나 메타 데이터 날짜를 변경하면 다음 단계가됩니다. 나는 지금까지 그렇게 생각하지 않았습니다. 힌트를 주셔서 감사합니다. 파일 날짜 나 메타 데이터의 날짜가 중요한지 여부에 관계없이 fotografs를 구성하는 방법에 따라 달라집니다. – Twonky

관련 문제