Como eu redireciono a saída do comando para um arquivo?

0

Eu tenho um comando que eu corro em uma pasta que gera hashes MD5 e nomes de arquivos no terminal:

ls |sort -nr | xargs md5sum

Eu preciso desta saída em um arquivo de texto que eu possa baixar e comparar com outra pasta na máquina de outro cliente. Como posso modificar o comando de forma que sua saída seja armazenada em um arquivo em /tmp ? Estou usando o Redhat 5.

    
por Zac Anderson 10.02.2012 / 00:50

3 respostas

5

Não é uma boa ideia analisar a saída de ls . O trabalho principal de ls é listar os atributos dos arquivos (tamanho, data, etc.). O próprio shell é perfeitamente capaz de listar o conteúdo de um diretório, com curingas .

É muito simples executar md5sum em todos os arquivos no diretório atual e colocar a saída em um arquivo: redirecionar sua saída para o arquivo de saída desejado.

md5sum * >/tmp/md5sums.txt

Se você quiser que a saída seja classificada por nome de arquivo, canalize a saída de md5sum em sort .

md5sum * | sort -k 2 >/tmp/md5sums.txt

Observe que a classificação numérica ( -n ) só trará resultados úteis se os nomes dos arquivos forem puramente numéricos. Se tudo que você precisa é que a saída seja determinista, como você classifica não importa.

    
por 10.02.2012 / 01:23
2
saída redirecionando é feito pelo comando abaixo

commandname > filename
    
por 10.02.2012 / 10:43
0

Da mesma forma que na maioria das plataformas não-nix, na verdade.

somecommand > somefile

Você não precisa classificá-lo, pois md5sum -c irá verificar os arquivos para você.

    
por 10.02.2012 / 00:57