파일 이름의 날짜를 사용하여 파일 수정 날짜 변경

파일 이름의 날짜를 사용하여 파일 수정 날짜 변경

파일 이름에 언급된 날짜를 기준으로 여러 파일의 마지막 수정 날짜를 변경합니다.

파일은

04-01-1981 XXXXXYYYYZZZZ.xml
19-11-1982 XXXXXYYYYZZZZ.xml
25-12-1981 XXXXXYYYYZZZZ.xml

필요한 이유: 각 파일이 게시할 기사인 일부 기사를 마이그레이션하고 있습니다. 그리고 이미 사용 가능한 사용자 정의 가져오기 유틸리티는 파일의 마지막 수정 날짜를 기사 게시 날짜로 사용합니다. 이것이 도움이 되기를 바라며 그 이유를 명확히 해주세요.

답변1

POSIX적으로:

for file in ??-??-????' '*.xml; do
  date=${file%% *}
  year=${date##*-}
  day=${date%%-*}
  month=${date%-*}
  month=${month#*-}
  touch -d "$year-$month-$day 00:00:00" -- "$file"
done

를 사용하면 zsh다음과 같이 단축할 수 있습니다.

for f (??-??-????' '*.xml(N))
  touch -d "$f[7,10]-$f[4,5]-$f[1,2] 00:00:00" -- $f

관련 정보