Создать отдельный файл .md5 для каждого файла в каталоге, ПРОПУСКАЯ существующие

Создать отдельный файл .md5 для каждого файла в каталоге, ПРОПУСКАЯ существующие

У меня есть, скажем, 4 ТБ миллионов файлов. Я думаю, если я смогу создать один .md5 для каждого файла, это было бы неплохо.

Я читаю Создать отдельный файл .md5 для каждого файла .fastq в каталоге? и изменен таким образом, чтобы он создавал отдельный .md5 для КАЖДОГО отдельного файла.

сказать: найти . -type f -name "*" -exec sh -c "md5sum {} > {}.md5" \;

Но, как я уже сказал, у меня 4 ТБ миллионов файлов, команда может не завершиться через 2 дня, и мне придется выключить ПК.

при возобновлении работы я хотел бы, чтобы указанная выше команда могла пропускать те файлы, которые уже имеют существующие файлы .md5 (т.е. те, которые вычисляются).

Как это сделать? Рекурсивно, конечно.

Спасибо.

решение1

Вместо того, чтобы создавать по одному .md5файлу на файл («миллионы файлов»), используя миллионы дисковых кластеров и миллионы инодов, поместите .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

Связанный контент