Como recursivamente criar um arquivo de hash (sha512sum) dentro de cada pasta de uma árvore?

1

Para uma determinada árvore, digamos / var / ftpd, como criar um arquivo de hash em cada pasta dessa árvore com o conteúdo dessa pasta em uma determinada árvore? O sha1sum e o sha512sum não possuem opções de recursão.

    
por Chris 12.07.2015 / 07:59

2 respostas

1

FWIW a solução é:

user@host bin]$ cat mkshaindir 
#!/bin/dash
cd $1
sha512sum * >.sha512sum

[user@host bin]$ find /var/ftpd -type d -print0 | xargs -0 -i  mkshaindir  {}

Observe que o mkshaindir, para os meus propósitos, é um componente separado porque pode ser necessário fazer um hash de arquivos em uma nova pasta ou de uma que foi alterada recentemente.

O resto é deixado como um exercício para o leitor.

Nota: o sha512sum irá reclamar ao STDERR sobre a entrada de arquivos não (por exemplo, diretórios, arquivos de bloco, etc).

    
por 12.07.2015 / 08:02
0

O script deve evitar incluir o próprio hashfile no cálculo, pois salvar o hashfile invalida o hash.
Além disso, sugiro usar find -exec para salvar recursos:

find /var/ftpd -type d -print0 ! -name .sha512sum -exec mkshaindir {} \;
    
por 12.07.2015 / 11:35