在典型的Linux shell中,您可以使用Ctrl+c
来停止执行命令。如果您已启动使用通配符(例如*)的运行来查找具有特定模式的所有文件,并且如果您有许多需要搜索的文件,则shell可能需要相当长的时间才能将通配符扩展为实际的文件名。同时,Ctrl + c不会停止shell。 Shell继续解析通配符。只有在shell解析通配符后,Ctrl + c才会生效,这可能需要相当多的时间。
有没有办法在尝试扩展通配符时停止shell?
这是在GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
上测试的。
答案 0 :(得分:2)
如果shell似乎花了很长时间来扩展通配符,那么很可能会有其中一个:
*/*/*/*/*/*
之类的事情 - 解决方案:不要这样做;找到一种方法将你正在做的事情分解成更小的比特,或至少更有效地处理它与此同时,其他建议/评论/答案指出,如果shell出现挂起,则可以杀死它。
答案 1 :(得分:1)
我想你可以杀死这个过程。 Ctrl-z
要停止ps aux | grep processname
,以获取进程ID,然后kill processid
。