ファイルの再確認時にハッシュファイルを更新する

ファイルの再確認時にハッシュファイルを更新する

現在、次のコードを使用して各フォルダをハッシュファイルに保存します。

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

make2回目の実行は何もしません。

ファイルをタッチするfolder/か、新しいファイルを作成してその特定のファイルに対してsha256sumを実行すると、その特定のファイルのmakesha256sumが更新されます。

makeランニングの詳細についてはinfo make


ファイルを変更しない場合(新しいファイルのみを追加)、最後にコマンドを実行したときの最新の変更時間とファイル名を覚えていて、最新のファイルのみをfind選択してください。

find -newer REFERENCE_FILE

...または直接タイムスタンプ(date(1)DATE STRINGを参照)

find -newermt TIME_STAMP

おすすめ記事