Genere un archivo .md5 separado para cada archivo en un directorio, SALTANDO los existentes

Genere un archivo .md5 separado para cada archivo en un directorio, SALTANDO los existentes

Tengo, digamos, 4 TB de millones de archivos. Creo que sería bueno si pudiera producir un único .md5 para cada archivo.

Yo leo ¿Generar un archivo .md5 separado para cada archivo .fastq en un directorio? y modificado para que produzca un .md5 individual para CADA archivo individual.

decir: encontrar. -tipo f -nombre "*" -exec sh -c "md5sum {} > {}.md5" \;

Pero como digo tengo 4TB de millones de archivos, el comando puede no terminar en 2 días y tengo que apagar la PC.

Cuando se reanude, desearía que el comando anterior pudiera omitir aquellos archivos que ya tienen archivos .md5 existentes (es decir, los calculados).

¿Como hacer esto? recursivamente, por supuesto.

gracias.

Respuesta1

En lugar de crear un .md5archivo por archivo ("millones de archivos"), utilizando millones de grupos de discos y millones de inodos, coloque .md5firmas para todos los archivos en un archivo grande (que puede dividir más tarde, si lo desea) (leer 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

información relacionada