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

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

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

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/하거나 새 파일을 생성하고 해당 특정 파일에 대해 sha256sum을 실행하면 make해당 특정 파일에 대한 sha256sum이 업데이트됩니다.

make달리기에 대해 자세히 알아보려면 info make.


파일을 변경하지 않는 경우(새 파일만 추가) 마지막으로 명령을 실행했을 때의 최신 수정 시간과 파일 이름을 기억하고 find최신 파일만 선택하세요.

find -newer REFERENCE_FILE

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

find -newermt TIME_STAMP

관련 정보