Eu uso o seguinte comando para verificar ~ 700 GiB de arquivos de backup:
$ find -type f -exec md5sum {} + | sort > ~/checksums
Isso leva muitas horas, então gostaria de integrar pv
no comando para mostrar o progresso.
Eu poderia fazer isso:
$ find -type f -exec pv {} + | md5sum
Mas ele concatena todos os arquivos, resultando em apenas uma soma de verificação.
Então, como eu poderia incluir pv
e ainda obter um arquivo de texto cheio de somas de verificação no final?
Seu primeiro comando não deve ser executado, pois você não pode usar um pipe de maneira
-exec
semelhante (aparentemente, isso foi um erro de digitação na pergunta original ).Em vez de:
ou, com
pv
,Em ambos os itens acima,
md5sum
seria chamado com o maior número possível de nomes de caminho em lotes.sort
pegaria a saída defind
(que é a saída demd5sum
) e a classificaria no nome de arquivo fornecido. A segunda variação também inserepv
entre ofind
e osort
.Você não pode usar
-exec pv {} | md5sum
para arquivos individuais, pois o pipe precisaria ser incorporado em um script de shell em linha que você chama-exec
para cada arquivo. Mas mesmo o correto-exec sh -c 'pv "$1" | md5sum' sh {} \;
descartaria o nome do arquivo damd5sum
saída gerada, então isso também não pode ser usado. Opv
utilitário funciona como um substituto para ocat
.