当我从终端运行 Evince 时,我收到大量警告。例如
(evince:4599): GVFS-WARNING **: can't init metadata tree /home/nivaca/.local/share/gvfs-metadata/home: open: Permission denied
(evince:4599): GVFS-WARNING **: can't init metadata tree /home/nivaca/.local/share/gvfs-metadata/home: open: Permission denied
** (evince:4599): WARNING **: Error setting file metadata: can't open metadata tree
(evince:5001): Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed
我到处寻找如何解决这个问题,但还是没能成功。
因此,我现在想要的是安静这些警告,因为它们无法让我看到终端中其他进程的真实情况。
有什么办法可以做到这一点?
答案1
我不一定推荐这种做法,但你可以这样做:
alias evince='evince 2>/dev/null'
这将从 evince 中删除所有标准错误。我认为看到这些错误带来的小烦恼比 evince 实际失败一次却不告诉你原因要好,但这是一个选择。
如果你使用 bash,你还可以做一些更有趣的事情,例如:
alias evince='evince 2> >( grep -v "evince.*WARNING" >&2 )'
从标准错误中过滤掉特定行。这可能更安全,但我并不一定赞同这样做。