現在、次のコードを使用して各フォルダをハッシュファイルに保存します。
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
2回目の実行は何もしません。
ファイルをタッチするfolder/
か、新しいファイルを作成してその特定のファイルに対してsha256sumを実行すると、その特定のファイルのmake
sha256sumが更新されます。
make
ランニングの詳細についてはinfo make
。
ファイルを変更しない場合(新しいファイルのみを追加)、最後にコマンドを実行したときの最新の変更時間とファイル名を覚えていて、最新のファイルのみをfind
選択してください。
find -newer REFERENCE_FILE
...または直接タイムスタンプ(date(1)DATE STRINGを参照)
find -newermt TIME_STAMP