Mi Blog

Programador Web, fanático del software libre, hardware libre y energía renovable. Quito Ecuador

Md5sum de todos los archivos de una carpeta

Para calcular los md5sum de todos los archivos en carpetas y subcarpetas se utiliza el siguiente comando

find . -type f | xargs md5sum

El comando funcionará correctamente a menos que haya archivos con espacios en sus nombres. Para solucionarlo debemos usar el argumento -d de xargs para definir un delimitador. En este caso el delimitador será \n. Asi usara la línea completa como argumento para md5sum

find . -type f | xargs -d '\n' md5sum

Ahora si deseamos excluir los archivos de una cierta carpeta como .git añadimos

find . -type f | grep -e "^\.\/.git" --invert-match | xargs -d '\n' md5sum

Para ordenar los nombres podemos añadir sort

find . -type f | grep -e "^\.\/.git" --invert-match | sort -n | xargs -d '\n' md5sum

Finalmente para grabar todo en un archivo se usa

find . -type f | grep -e "^\.\/.git" --invert-match | grep "./checksum" --invert-match | sort -n | xargs -d '\n' md5sum > checksum

y luego para cofirmar que los archivos no han cambiado se usa

md5sum -c checksum
Categorias: GNU/Linux