Como criar um arquivo md5 para cada pasta em uma unidade recursivley?

3

Estou procurando um script que crie um arquivo chechsum md5 para cada pasta dentro da unidade recursivley?

Eu tenho uma cópia do md5deep na minha máquina, mas eu não sou tão bom no script bash.

    
por tristank 30.08.2012 / 15:22

2 respostas

5

Para obter um arquivo .md5 para qualquer arquivo em um diretório específico, você pode usar o seguinte script:

#!/bin/bash
if [ $# -ne 1 ] ; then
        echo "Usage $0 [directory]" 
        exit 1
fi
find $1 -type f  -print0 | while IFS= read -r -d $'
for i in **/*(/D) ; do ( cd $i ; for j in *(.D) ; do md5sum $j > $j.md5 ; done ) ; done 
' file; do ( cd "$(dirname "$file")" filename="$(basename "$file")" md5sum "$filename" > "$filename".md5 ) done

Em zsh , o mesmo para todos os arquivos no diretório atual pode ser feito com o comando de uma linha (inclui arquivos que começam com um ponto):

#!/bin/bash
if [ $# -ne 1 ] ; then
        echo "Usage $0 [directory]" 
        exit 1
fi
find $1 -type f  -print0 | while IFS= read -r -d $'
for i in **/*(/D) ; do ( cd $i ; for j in *(.D) ; do md5sum $j > $j.md5 ; done ) ; done 
' file; do ( cd "$(dirname "$file")" filename="$(basename "$file")" md5sum "$filename" > "$filename".md5 ) done
    
por 30.08.2012 / 15:28
1

Necromancia, claro, mas eu sei como nós amamos 1 line-ers

#find / -type f  -exec md5sum {} + > CheckSums

pessoalmente eu usaria o sha512sum, e limite para / home ou algo assim, mas se você quiser fazer o checksum root então vá em frente.

    
por 19.03.2015 / 02:05