為目錄中的每個文件產生單獨的 .md5 文件,同時跳過現有文件

為目錄中的每個文件產生單獨的 .md5 文件,同時跳過現有文件

我有 4TB 的數百萬個文件。我想如果我能為每個檔案產生一個 .md5,那就太好了。

我讀 為目錄中的每個 .fastq 檔案產生單獨的 .md5 檔案? 並進行修改,使其為每個單獨的檔案產生單獨的 .md5。

說:找到。 -type f -name "*" -exec sh -c "md5sum {} > {}.md5" \;

但正如我所說,我有 4TB 的數百萬個文件,該命令可能無法在 2 天內完成,我必須關閉電腦。

當恢復時,我希望上述命令可以跳過那些已經存在 .md5 檔案的檔案(即計算出的檔案)。

這個怎麼做?當然,遞歸地。

謝謝。

答案1

不要.md5為每個檔案建立一個檔案(「數百萬個檔案」),使用數百萬個磁碟叢集和數百萬個 inode,而是將.md5所有檔案的簽名放在一個大檔案中(如果您願意,可以稍後將其拆分)(閱讀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

相關內容