How can I stop cat output immediately despite massive output?
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
Related videos on Youtube
CHK
Updated on September 18, 2022Comments
-
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 almost 11 yearsCHK asking about situation with ALREADY started process. You can't use less/more in this case.
-
TecBrat almost 10 yearsWhile not an answer to the direct question, this has value in that it tells how to avoid the situation before it happens.
-
benjwadams over 9 yearsWhy are you
kill -9
ing if it isn't absolutely necessary? -
vontrapp over 5 yearsDoes 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 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
orscreen
is always a recommendation