Como posso parar a saída do gato imediatamente, apesar da saída massiva?

8

Estou procurando, de alguma forma, parar a saída para STDOUT quando percebo que um comando está errado. Por exemplo, se eu acidentalmente gato um arquivo muito grande. Normalmente, ele acabará parando se você pressionar ctrl + c , mas isso levará muito tempo.

Existe uma maneira de interromper a saída mais imediatamente?

    
por CHK 02.07.2013 / 16:32

4 respostas

8

Você pode executar ctl-z para fazer o segundo plano e depois matar o PID.

$ ctl z (para o fundo)

$ kill -9 {pid} 'do processo que acabou de ser obtido em segundo plano'

    
por 02.07.2013 / 16:41
2

Muitas vezes, os dados já foram enviados para o monitor, e o "longo tempo" é o terminal que tenta exibir os dados. Fazer qualquer coisa na tarefa não ajudará (ou seja, Ctrl + Z ou Ctrl + C ), você vai precisar de um terminal mais rápido ou algo para armazenar os dados.

Eu canalizo saídas grandes através de less e tail dependendo se eu quero ver a parte superior ou inferior do arquivo, já que ambas permitem controlar facilmente a quantidade de dados sendo enviados para o terminal e fechar a programa se não é o que eu quero.

    
por 02.07.2013 / 16:43
1

Mudando para um Terminal diferente (via CTRL + F1 para F6 no modo de texto, ou abrindo uma nova janela em screen via CTRL + A , C ) depois de ter pressionado CTRL + Z ou < kbd> CTRL + C fará com que o terminal original pule a tentativa de fazer todos os feeds de linha e pule diretamente para a última linha de saída em um tempo menor

    
por 02.07.2013 / 17:04
0

Você deve conseguir canalizá-lo para more ou less

cat large_file.txt | less

Nesse ponto, você pode paginar a resposta e sair com um :q

Você também pode usar grep para ajudar a classificar sua resposta, caso esteja procurando um erro / problema específico.

link

    
por 02.07.2013 / 16:39