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 .md5
arquivo por arquivo ("milhões de arquivos"), usando milhões de clusters de disco e milhões de inodes, coloque .md5
assinaturas 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