Se você deseja anexar a um arquivo, use >>
.
Então, seus exemplos seriam
$ md5sum file >> checksums.txt
e
$ sha512sum file >> checksums.txt
Estou fazendo um backup de alguns arquivos e estou criando um arquivo de soma de verificação, checksums.txt
, para verificar mais tarde a integridade dos meus dados. No entanto, colar cada soma de verificação manualmente no arquivo é inconveniente, pois meu backup consiste em centenas de arquivos. Por isso, pedi a sugestão de simplificar o processo, redirecionando a saída para o arquivo de soma de verificação:
$ md5sum file > checksums.txt
ou
$ sha512sum file > checksums.txt
No entanto, isso substitui o conteúdo do arquivo checksums.txt
com a soma de verificação de, neste exemplo, o arquivo file
; Em vez disso, gostaria de anexar a soma de verificação de file
a checksums.txt
sem excluir seu conteúdo. Então, minha pergunta é: como faço isso?
Apenas mais uma coisa. Desde que eu sou um usuário básico, tente (somente se possível) para fazer sugestões fáceis de seguir.
Ao lado do operador >>
para abrir o arquivo no modo de acréscimo respondido por @Thomas , uma outra opção é para abrir o arquivo com o operador >
, mas apenas uma vez e deixe-o aberto para os dois comandos:
exec 3> checksums.txt
Abrir (e truncar) o arquivo no descritor de arquivo 3 e, em seguida:
md5sum file1 >&3
Escrevia o md5sum do arquivo1 lá.
md5sum file2 >&3
(quando executado a partir desse mesmo shell), anexaria o arquivo2 md5sum.
Então, você pode fazer:
exec 3>&-
para fechar esse descritor de arquivo. Você também pode fazer o mesmo com stdout (descritor de arquivo 1, o padrão para o operador >
), redirecionando um grupo inteiro de comandos :
{ md5sum file1; md5sum file2; } > checksums.txt
Ou usando um subshell em vez de um grupo de comandos :
(md5sum file1; md5sum file2) > checksums.txt