Como criar checksums sha1 de arquivos dentro de um arquivo tar sem usar muito espaço em disco

4

Eu gostaria de obter as somas de verificação sha1 de todos os arquivos dentro de um arquivo tar simples como uma lista ou um novo arquivo

Sem usar o espaço em disco para descompactar o arquivo tar grande. Algo com piping e calcular o sha1 on the fly, direcionando a saída para / dev / null

Eu pesquisei bastante no google e fiz alguns experimentos com pipes, mas não consegui ir muito longe.

Realmente me pouparia muito tempo verificando backups.

    
por carparts 16.08.2016 / 10:47

1 resposta

5

Muito fácil:

tar xvJf myArchive.tar.xz --to-command=sha1sum

O resultado é assim:

z/
z/DOCUMENTATION
3c4d9df9bcbd1fb756b1aaba8dd6a2db788a8659 *-
z/getnameenv.sh
1b7f1ef4bbb229e4dc5d280c3c9835d9d061726a *-

Ou crie "tarsha1.sh" com:

#!/bin/bash

sha1='sha1sum'
echo -n $sha1 | sed 's/ .*$//'
echo " $TAR_FILENAME"

Então use desta forma:

tar xJf myArchive.tar.xz --to-command=./tarsha1.sh

O resultado é assim:

3c4d9df9bcbd1fb756b1aaba8dd6a2db788a8659 z/DOCUMENTATION
1b7f1ef4bbb229e4dc5d280c3c9835d9d061726a z/getnameenv.sh
    
por 16.08.2016 / 10:56