如何立即关闭程序的所有实例?

如何立即关闭程序的所有实例?

我意外打开了 32 个“存档管理器”选项卡。如何才能立即关闭它们,就像同时对所有选项卡使用Alt+一样。F4

答案1

从命令行:

killall file-roller

您可以按 alt+f4,但您需要对每个打开的档案管理器都执行此操作。

答案2

另一种方法是使用wmctrl实​​用程序(窗口管理器控件)。这可用于告诉窗口管理器假装您单击了关闭按钮。这避免了 的潜在严厉性质killall;例如,一些带有未保存文档的程序在被终止时(即使是轻轻地终止)会立即退出,而单击关闭按钮会弹出“是否要保存?”提示。

基本命令是wmctrl -c WINDOWTITLE,因此在本例中wmctrl -c "Archive Manager"(假设没有打开文件:这会更改标题)。不幸的是,它一次只能关闭一个,因此我们需要做更多操作才能关闭所有文件。

wmctrl如果找到匹配项则返回成功,因此我们可以循环直到失败:

while wmctrl -c "Archive Manager"; do sleep 0.1; done

这总是选择它找到的第一个窗口,所以我们需要休眠一会儿,以避免不断地向第一个已经忙于关闭的窗口发送一连串关闭命令 - 这可能会导致错误并停止循环。

这很简单,通常也能奏效,但休眠一段时间并希望窗口在我们再次尝试之前关闭是一种混乱而缓慢的避免错误的方法。我们真正想要做的是立即向每个匹配的窗口发送一条关闭消息。

我们可以使用 查找所有打开的窗口wmctrl -l。这会列出一个数字窗口 ID,我们可以使用它来单独识别每个窗口,即使它们都具有相同的标题。然后我们需要过滤到仅匹配的窗口(命令grep),仅提取窗口 ID(命令cut)并wmctrl -i -c为每个窗口调用。-i需要匹配窗口 ID 而不是窗口标题。

for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
    wmctrl -i -c $w
done

当猫踩到你的键盘时只需输入一些内容,这有点复杂,但希望这是一种可以保留在你的脚本工具箱中的便捷技术。

答案3

您可以使用Ctrl+Q键盘快捷键来关闭档案管理器的所有打开的窗口。


Ctrl+快捷键Q在 Ubuntu 上很常见(在许多其他发行版中也是如此)。它对我迄今为止使用的大多数应用程序的作用相同。也就是说,它将关闭正在运行的应用程序的所有窗口。

相关内容