How can I stop cat output immediately despite massive output?

34,681

Solution 1

You can run ctl-z to background it and then kill the PID.

$ ctl z (to background it)

$ kill -9 {pid} 'of process that just got backgrounded'

Solution 2

You should be able to pipe it to more or less

cat large_file.txt | less

At which point you could page through the answer and break out with a :q

You could also use grep to help sort through your answer if you're looking for a specific error/problem.

http://www.westwind.com/reference/os-x/commandline/pipes.html

Solution 3

Often the data has already been sent to the display, and the "long time" is the terminal trying to display the data. Doing anything to the task won't help (i.e., Ctrl+Z or Ctrl+C), you'll need either a faster terminal or something to buffer the data.

I pipe large outputs through less and tail depending on whether I want to view the top or the bottom of the file, since both allow me to easily control the amount of data being sent to the terminal and close the program if it's not what I want.

Solution 4

Switching to a different Terminal (via CTRL+F1 to F6 in text mode, or opening a new window in screen via CTRL+A,C) after having pressed either CTRL+Z or CTRL+C will cause the original terminal to skip trying to do all the linefeeds and directly jump to the last line of output in a shorter time

Share:
34,681

Related videos on Youtube

CHK
Author by

CHK

Updated on September 18, 2022

Comments

  • CHK
    CHK over 1 year

    I'm looking for someway to stop the output to STDOUT when I realize a command is wrong. For instance, if I accidentally cat a very large file. Usually it will eventually stop if you hold down ctrl + c, but it takes a long time.

    Is there a way to stop the output more immediately?

  • september
    september almost 11 years
    CHK asking about situation with ALREADY started process. You can't use less/more in this case.
  • TecBrat
    TecBrat almost 10 years
    While not an answer to the direct question, this has value in that it tells how to avoid the situation before it happens.
  • benjwadams
    benjwadams over 9 years
    Why are you kill -9ing if it isn't absolutely necessary?
  • vontrapp
    vontrapp over 5 years
    Does this work when the "long time" is the output going into a network buffer and taking a long time to transfer all the text to the receiving terminal? If so, how does one accomplish the same in, say, terminator? I switch to another tab and nothing. On the other hand, if I kill the ssh session using ~. then it immediately stops. I'd rather not kill the session though.
  • Tobias Kienzler
    Tobias Kienzler over 5 years
    @vontrapp Good question (which is probably worth a new question). My guess would be that won't work, but over SSH for long running processes using tmux or screen is always a recommendation