Gere um arquivo .md5 separado para cada arquivo em um diretório, enquanto SALTA os existentes

Gere um arquivo .md5 separado para cada arquivo em um diretório, enquanto SALTA os existentes

Recebi, digamos, 4 TB de milhões de arquivos. Acho que se eu pudesse produzir um único .md5 para cada arquivo, seria bom.

Eu leio Gerar um arquivo .md5 separado para cada arquivo .fastq em um diretório? e modificado para produzir um .md5 individual para CADA arquivo individual.

diga: encontre. -type f -name "*" -exec sh -c "md5sum {} > {}.md5" \;

Mas como eu disse consegui 4TB de milhões de arquivos, o comando pode não terminar em 2 dias e tenho que desligar o PC.

ao retomar, gostaria que o comando acima pudesse pular os arquivos que já possuem arquivos .md5 existentes (ou seja, aqueles calculados).

Como fazer isso? recursivamente, é claro.

obrigado.

Responder1

Em vez de criar um .md5arquivo por arquivo ("milhões de arquivos"), usando milhões de clusters de disco e milhões de inodes, coloque .md5assinaturas para todos os arquivos em um arquivo grande (que você pode dividir mais tarde, se desejar)(leia 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

informação relacionada