ターミナルから実行すると、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 )'
標準エラーから特定の行をフィルタリングします。これはより安全かもしれませんが、必ずしも推奨しているわけではありません。