我有 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