4TB の何百万ものファイルがあります。ファイルごとに 1 つの .md5 を作成できれば便利だと思います。
私は読む ディレクトリ内の各 .fastq ファイルに対して個別の .md5 ファイルを生成しますか? 各ファイルごとに個別の .md5 を生成するように変更されました。
次のようにします: find . -type f -name "*" -exec sh -c "md5sum {} > {}.md5" \;
しかし、前述したように、4TB の何百万ものファイルを取得しているため、コマンドは 2 日以内に完了しない可能性があり、PC をシャットダウンする必要があります。
再開時に、上記のコマンドで、既に .md5 ファイルが存在するファイル (つまり、計算されたファイル) をスキップできればと思います。
これをどうやって行うのでしょうか? もちろん、再帰的に行います。
ありがとう。
答え1
.md5
ファイルごとに 1 つのファイル (「数百万のファイル」) を作成し、数百万のディスク クラスターと数百万の i ノードを使用するのではなく、.md5
すべてのファイルの署名を 1 つの大きなファイル (必要に応じて後で分割できます) に格納します (読み取りman find;man xargs
):
find . -type f \! -name '*.md5' -print0 | xargs -0 md5sum > md5sum.out
# Separate filenames with \000^^^^^^^ ^ in case some have spaces
# ^^^^^^^^^^^^^^^^ but NOT *.md5 files
# ^^^^^^^ each file