파일 생성 시간(RPM)을 다운로드 시간에서 빌드 시간으로 변경

파일 생성 시간(RPM)을 다운로드 시간에서 빌드 시간으로 변경

나는 내 자신의 내부 저장소를 만들어 이를 제공 createrepo하고 희망적으로 Java 저장소를 제공할 것입니다.

JRE 및 JDK 패키지 자동 다운로드스택 오버플로에 설명되어 있음다운로드된 시점의 타임스탬프가 포함된 파일이 남아 있었습니다. 파일 생성 시간은 다운로드 스크립트가 실행되는 시간으로 설정됩니다.

추가 처리를 위해 타임스탬프를 RPM 패키지의 빌드 시간으로 설정하고 싶습니다(..., , 등을 통해 쿼리할 수 ls -al있도록 ll) --full-time.

파일 생성 시간(RPM)을 다운로드 시간에서 빌드 시간으로 자동 변경하는 방법은 무엇입니까?

답변1

몇 가지 연구 끝에 RPM에서 빌드 시간을 쿼리할 수 있다는 사실을 발견했습니다 rpm -qip.

BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date  : " | sed -e 's/Build Date  : //g')
echo ${BUILDTIME}

date명령은 주어진 날짜 및 시간 문자열의 형식을 다시 지정할 수 있습니다.

TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
echo ${TIMESTAMP}

나중에 명령과 함께 사용할 수 있습니다 touch.

touch -m -a -t ${TIMESTAMP} ${FILENAME}

특정 디렉터리의 모든 파일을 반복함으로써 포함된 모든 패키지의 모든 생성 시간을 나열하고 자동으로 수정할 수 있습니다.

#!/bin/bash

for FILENAME in *.rpm; do

    echo ${FILENAME}

    BUILDTIME=$(rpm -qip --nosignature ${FILENAME} | grep -i "Build Date  : " | sed -e 's/Build Date  : //g')
    echo ${BUILDTIME}

    TIMESTAMP=$(date --date="${BUILDTIME}" "+%Y%m%d%H%M")
    echo ${TIMESTAMP}

    touch -m -a -t ${TIMESTAMP} ${FILENAME}

done

관련 정보