gio open
我经常使用该命令,因此我在 .bashrc 文件中为其添加了一个别名
alias open="gio open"
因此,我可以简单地写open .
或open ~/Pictures/example.png
作为示例。
但是,我无法阻止烦人的输出,因为它默认
gio
没有选项,在工作期间输出一些消息,例如:--quite
gio open
msi@msi:~/Pictures$ open image-3.jpg
msi@msi:~/Pictures$
(gthumb:37944): Gtk-WARNING **: 08:00:54.815: Failed to register client: GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register client
因此我发现有些人使用重定向运算符将命令的输出从标准输出(shell)重定向到,/dev/null
因为写入此“设备”的所有内容都会直接自动删除。
你能帮忙吗?
答案1
抑制错误输出
应用程序的警告消息(在您的示例“gthumb”中)不会发送到标准输出,而是发送到stderr
。您可以抑制这些消息,例如:
gio open image-3.jpg 2>/dev/null
别名为
alias open='gio open 2>/dev/null'
将努力自动化别名中的这一方面。
抑制所有输出
为了消除所有输出,将文件描述符 1 ( stdout
) 和 2 ( stderr
) 重定向至/dev/null
:
gio open image-3.jpg 1>/dev/null 2>/dev/null
以下具有相同的效果,但只允许您指定一次最终目标:
gio open image-3.jpg >/dev/null 2>&1
stdout
重定向到/dev/null
,并stderr
到stdout
,变成/dev/null
。1
由于这是默认输出,因此可以省略。
Bash 和其他 shell 也允许这种快捷方式:
gio open image-3.jpg &>/dev/null