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