파일을 다시 확인할 때 해시 파일 업데이트

파일을 다시 확인할 때 해시 파일 업데이트

현재 다음 코드를 사용하여 각 폴더를 해시 파일에 저장하고 있습니다.

find folder/ -type f -exec sha256sum {} > checksumfolder.txt \;

해당 txt 파일을 확인/재계산하고 다시 생성하는 대신 이전 txt 파일을 업데이트하고 해시가 없는 새로 추가된 파일을 추가하는 것이 가능한지 궁금합니다.

답변1

Makefile다음 내용으로 를 만듭니다 .

SHAS := $(patsubst folder/%, sha/%, $(shell find folder/ -type f))

all: sha $(SHAS) checksumfolder.txt

sha:
    mkdir sha

sha/%: folder/%
    sha256sum $< > $@

checksumfolder.txt: $(SHAS)
    cat $(SHAS) > checksumfolder.txt

make이제 의 상위 디렉터리 내에서 실행하면 의 각 파일의 sha256sum을 포함하는 folder/sha/디렉터리가 생성됩니다 folder/. 마지막에는 모든 파일을 checksumfolder.txt.

make두 번째 실행 시에는 아무 작업도 수행되지 않습니다.

파일을 터치하거나 folder/새 파일을 만들고 실행하면 make이 특정 파일의 sha256sum이 업데이트됩니다.

makerun 에 대해 자세히 알아보세요 info make.


파일을 전혀 변경하지 않는 경우(새 파일만 추가) 마지막으로 명령을 실행했을 때 가장 최근에 수정한 시간의 파일 이름을 기억하고 다음을 find사용하여 최신 파일만 선택할 수 있습니다.

find -newer REFERENCE_FILE

… 또는 직접 타임스탬프(date(1) DATE STRING 참조)

find -newermt TIME_STAMP

관련 정보